@City IoT Cloud Platform




iSys - Intelligente systemen IoT Oplossingen









IoE.Systems

Inhoudsopgave

1. Invoering. 5

1.1 Ondersteunde apparaattypen. 5

1.2. Ondersteunde productsoorten. 5

1.3. Ondersteunde communicatieprotocollen 5

1.4. Ondersteunde communicatietechnologie van de apparaten 6

1.5. @City Cloud Server 6

1.5.1. Server- en communicatiegateways 7

1.5.2 HTTP LoRaWAN-integratie 7

1.5.3. Front-end interface 8

1.5.3. Toegangsrechten voor servers 8

1.6. Slimme apparaten 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. Business to Business (B2B) opties 9

2. @City IoT Platformfunctionaliteit 10

3. Hoofdpagina 11

4. Hoofdformulier 11

4.1. Koptekst 12

4.1.1. Home Link - (opent de actuele resultatentabel) 12

4.1.2. "X" checkbox - opent / sluit Query Form 12

4.1.3. Selectievakje "V" - opent / sluit Velden van formulier 12

4.1.4. Grafische pictogrammen - links naar visualisatieresultaten (bewerkbaar) 12

4.2. Vorm: 12

4.2.1. Selectievakje "X" - opent / sluit het hele vraagformulier 12

4.2.2. CSS - Selecteer visualisatiethema 12

4.2.3. Selectievakje Zichtbare velden - toont / verbergt de veldfilterlijst 12

4.2.4. Tab: Tabbladnaam om toe te voegen of te verwijderen 12

4.2.5. Knoppen toevoegen / verwijderen - Tabbladen met de naam in tabbladveld 12 toevoegen of verwijderen

4.2.6. Selecteer kernknop 12

4.2.7. Deselecteer alles-knop 12

4.2.7. Knop Alles selecteren 12

4.2.8. Verberg filter - Verberg het hele formulier 12

4.2.9. Execute-knop - Parameterinstellingen wijzigen 13

4.2.10. "V" checkbox - toon / hoog filter velden. 13

4.3. Tabbladen 13

4.4. Inhoudsopgave 13

4.4.1. Uitvoeren - weergaven resultaattype 13

4.4.2. Kopiëren (+/- links) 13

4.4.3. Tabelcelkoppelingen 13

4.5. Gegevensvolgorde 13

4.6. Voorbeeld 13

5. Kaarten 15

5.1. Kaartinitialisatie 15

5.2. Optionele instellingen voor query 15

5.2.1. MAP-schaal aanpassen (zoomniveau) 16

5.2.2. IMEI (Selecteer apparaatveld) 16

5.2.3. Lon, Lat (coördinatenvelden lengtegraad, breedtegraad) 16

5.2.4. MAP-stijl wijzigen (thema) 16

5.2.5. WAAR Clausule 16

5.2.6. Uitvoeren (knop Query uitvoeren) 16

5.2.7. Deselecteer alles (verwijder alle velden uit de query) 17

5.2.8. Selectievakje "V" (veldformulier openen / sluiten) 17

5.2.9. Selectievakje "X" (zoekformulier weergeven / verbergen) 17

5.3. Voorbeeld 17

6. Toon resultaten in tabel 18

6.1. Initialisatie van tabel 18

6.2. Optionele instellingen voor query 19

6.2.1. Sorteren - sorteer veld en volgorde oplopend / aflopend 19

6.2.2. DB / IMEI - Selecteer apparaat 19

6.2.3. CSS - selecteer stijl (visualisatiethema) 20

6.2.4. Zichtbare velden - Velden weergeven / verbergen 20

6.2.5. Leeg verwijderen - Geen lege kolommen weergeven 20

6.2.6. Selectievakje "X" (zoekformulier weergeven / verbergen) 20

6.2.7. Where-clausule (voor gegevensbeperking) 20

6.2.8. Selecteer kernknop (meest voorkomende velden inschakelen) 20

6.2.9. Deselecteer alles-knop (verwijder alle velden uit de query) 20

6.2.10. Uitvoeren (knop Query uitvoeren) 20

6.2.11. Selectievakje "V" (veldformulier openen / sluiten) 20

7. Staafdiagrammen. 21

8. Historische grafieken. 22

8.1. Initialisatie van historische grafieken 22

8.2. Optionele instellingen van historische grafieken 23

8.2.1. IMEI - (Selecteer apparaat om historische gegevens weer te geven) 23

8.2.2. Min - limiet minimale waarde van eerste veld 23

8.2.3. Max - limiet maximale waarde van eerste veld 23

8.2.4. "V" - Formulier Velden weergeven / verbergen 23

8.2.5. Van: minimale datum / tijd instellen (*) 23

8.2.6. Aan: maximale datum datum / tijd instellen (*) 23

8.2.7. Selectievakje "X" (zoekformulier weergeven / verbergen) 23

8.2.8. "Waar" Artikel 23

8.2.9. Deselecteer alles-knop (verwijder alle velden uit de query) 23

8.2.10. Uitvoeren (knop Query uitvoeren) 23

8.2.11. Selectievakje "V" (veldformulier openen / sluiten) 24

8.3. Bars Variant: (geeft alleen beschikbare gegevens weer) 24

8,4. Doorlopende variant (met dezelfde gegevens): 24

9. Compatibiliteit met webbrowser 25

10. Thema's aanpassen 26

11. Algoritmes bijwerken 27

12. Databasestructuur 28

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

12.2. Apparaatopdrachten (gebeurtenissen) wachtrij "* _c" tabel - structuur 30

12.3. Toegang tot resultaten uit databases - middenniveau (gegevens lezen) 30

12.3.1. Krijg de huidige status van alle apparaten 30

12.3.2. Historische gegevens voor het apparaat ophalen 31

12.3.3. Krijg een lijst met apparaten - één veld van de huidige statussen met beperking 32


1. Invoering.

@City IoT Cloud Platform is toegewijd "micro-wolk" systeem voor individuele klanten. Platform is niet deelbaar en slechts één klant heeft toegang tot fysieke of virtuele server (VPS of dedicated servers). De klant kan een van de tientallen datacenters in Europa of in de wereld selecteren.

1.1 Ondersteunde apparaattypen.

@City IoT platform is gewijd aan de volgende iSys.PL-producten



1.2. Ondersteunde productsoorten.

@City (eCity) Cloud IoT Platform is een systeem met verschillende afmetingen voor IP IoT-producten (samen genoemd als @City Hardware of CioT-apparaten ):


1.3. Ondersteunde communicatieprotocollen

@City IoT platform ondersteunt de volgende protocollen voor communicatie:

Gegevens die van de controller naar de cloudserver worden verzonden en vice versa, worden gecodeerd in een uniek binair formaat voor de laagste gegevensgrootte en verhoogde beveiliging. Elke partner krijgt zijn eigen unieke coderingssleutel voor apparaatautorisatie, controle van gegevensvaliditeit, enz.


Voor niet-eHouse / eCity-apparaten kunnen we individuele coderingsalgoritmen leveren ( "C" broncode) voor elke partner voor microprocessor om gegevens vóór communicatie te beschermen.

In dit geval zijn de gegevens volledig veilig tijdens bidirectionele communicatie via de openbare communicatiemedia (internet, lucht, enz. ).


1.4. Ondersteunde communicatietechnologie van de apparaten

@City IoT platform ondersteunt:


@City IoT Platform is bedoeld voor apparaten / knooppunten:


1.5. @City Cloud Server

@City-software werkt op Linux-gebaseerde VPS (Virtual Private Server) of Dedicated Server aan internetzijde, afhankelijk van de gevraagde prestaties van de Server (later Server genoemd):


Er zijn verschillende varianten van VPS, afhankelijk van:


Er zijn tientallen Dedicated servers, afhankelijk van:


Het @City IoT-platform is bedoeld voor één klant:


Omdat het geen server is die niet kan worden gedeeld tussen klanten, vereenvoudigt het de beveiligingstoegang en prestatieproblemen. Om deze reden is alleen de klant verantwoordelijk voor effectieve beveiliging, stabiliteit, efficiëntie, datadoorvoer, etc. In het geval van onvoldoende prestaties, kan de klant een hoger plan (VPS of Dedicated Server) aanschaffen, dat beter is dan de verwachte functionaliteit en prestaties.

In bijzondere gevallen "Cloud to cloud" communicatie kan worden geïmplementeerd voor globalisering en centralisatie van gegevens naar grotere gebieden in plaats van een cloud voor meerdere klanten.

1.5.1. Server- en communicatiegateways

De communicatie van @City Server wordt gerealiseerd op basis van een applicatie op laag niveau voor prestatiemaximalisatie.

De belangrijkste kenmerken van de @City Server-applicatie zijn:

@City Server-software is voor elke gebruiker hetzelfde en kan niet voor verschillende klanten worden aangepast.

1.5.2 HTTP LoRaWAN-integratie

LoRaWAN-controllers zijn geïntegreerd met de @City-cloud via de HTTP-interface (webhooks) die beschikbaar is op de LoRaWAN-netwerk / applicatieserver.

Er worden verschillende soorten netwerk- / applicatieservers ondersteund:

TTN (beperkte tijd "In de lucht" en het maximale aantal opdrachten dat naar de driver wordt verzonden en die geen firmware-upgrade ondersteunen)

LoraWAN-Stack (hosting vereist op een fysiek apparaat met internettoegang).

LoraServer.Io (Vereist hosting op een fysiek apparaat met internettoegang - verzendt alleen gegevens naar de server en ondersteunt geen firmware-upgrade)



De @City Cloud voor LoRaWAN-controllers is op dezelfde manier verdeeld als voor andere interfaces. Het wordt besproken in het vorige hoofdstuk.

1.5.3. Front-end interface

Front-end interface wordt gerealiseerd met PHP-scripts voor het extraheren van aangepaste gegevens uit @City Cloud Database. Het maakt gebruik van een zeer elastisch zoekmechanisme, gebaseerd op originele SQL-query's om de gewenste gegevens te beperken. Interface levert queryresultaten in JSON-formaat voor verdere decodering en verwerking door JavaScript Front-end web "applicatie".

De originele front-end-interface is voor elke gebruiker hetzelfde en kan niet voor verschillende klanten worden aangepast.

Overlay-interface kan worden gemaakt door ons personeel of in samenwerking om maatwerk voor de klant te garanderen.

1.5.3. Toegangsrechten voor servers

De toegangsrechten van de klant (tot fysieke server) zijn beperkt.

Bestandstoegang alleen voor de directory "sjablonen" (native tekstbestanden - .txt, .js, .css, .html):

Andere toegangsrechten:


iSys - Intelligent Systems-personeel - heeft onbeperkte toegang tot de hele server, inclusief root-account en volledige DB-toegang voor onderhoud.

Onder bepaalde omstandigheden kan iSys aanvullende beperkte rechten verlenen aan de klant (PHP-scripts, bestanden) na het controleren van de broncode, het uitvoeren van tests, als dit geen invloed heeft op de algehele systeembeveiliging, stabiliteit en prestaties.


1.6. Slimme apparaten

1.6.1. CIoT - GSM-apparaten

Onze apparaten bevatten microcontroller en GSM / GPS / GNSS-module (2G..4G, NBIoT, CATM1) voor communicatie. Microcontroller bevat een gecodeerde bootloader voor een veilige OTA-firmware-upgrade. Dit maakt het mogelijk om veel systeemvarianten op basis daarvan te creëren "CIoT Smart-apparaat".


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


Ethernet- en WiFi-controllers maken IP-gebaseerde communicatie met het systeem mogelijk (zonder kosten voor gegevensoverdracht naar de GSM-operator). Deze apparaten hebben ook een gecodeerde bootloader en apparaten kunnen worden bijgewerkt via de oorspronkelijke interface. Voor wifi heeft het een OTA-firmware-upgrade van de hoofdserver


1.6.2. IoT - LoRaWAN-apparaten

LoRaWAN maakt datatransmissie over zeer lange afstanden mogelijk (tot ca. 15 km). Dit bereik is afhankelijk van de snelheid van de datatransmissie, de hoeveelheid data, de verstedelijking van het gebied en de efficiëntie van de radiopaden van de apparaten.

Onze apparaten bevatten een microcontroller en een LoRaWAN-module voor communicatie. De microcontroller bevat een gecodeerde bootloader voor een veilige OTA-software-update. Hierdoor kunt u meerdere systeemvarianten op basis hiervan creëren "IoT smart device". De apparaten werken in de ISM open band zonder extra abonnementskosten. Het is noodzakelijk om LoRaWAN Gateways te gebruiken om het hele gebied met toegang tot internet te bestrijken. In het geval van bestaande LoRaWAN-poorten binnen het bereik van apparaten (geconfigureerd voor TTN-server), is het mogelijk om er informatie doorheen te sturen. Firmware-upgrade vereist een eigen netwerk / applicatie LoRaWAN-server en een goed bereik voor communicatie.

1.7. Business to Business (B2B) opties


Er zijn verschillende opties voor zaken en samenwerking:

2. @City IoT Platformfunctionaliteit

@City-platform ondersteunt aanpasbare front-end-sjabloon voor gegevensvisualisatie, query's, beperking en verwerking (huidige / historische gegevens):


De front-end van de gebruiker is toegankelijk via een statisch IP- of DNS-omleidingsdomein / subdomein / bestand, indien beschikbaar.


Voorbeeld- en demo-installatie (het is alleen ingeschakeld voor potentiële klanten).

Laat het ons weten wanneer u het wilt testen - om openbare toegang tot het platform mogelijk te maken.

Het kan een statisch IP-adres van een externe computer vereisen om communicatie met het @City-platform mogelijk te maken.


3. Hoofdpagina

De hoofdpagina is om veiligheidsredenen opzettelijk leeg gelaten: http: //% YourIP% / IoT /

Het kan afzonderlijk worden ingeschakeld en bewerkt en links bevatten naar alle beschikbare services van @City IoT Platform als het nodig is


4. Belangrijkste vorm

Hoofdformulier is bedoeld om nieuwe voorinstellingen en tabbladen te maken: http: //%IP%/IoT/que.php

Dit is het eerste formulier voor het maken van resultaten, weergaven en tabbladen voor elke configuratie




Beschrijvingen (van boven en van links naar rechts)

4.1. Header

4.1.1. Home Link - (opent actuele resultatentabel)

4.1.2. "X" selectievakje - opent / sluit Query Form

4.1.3. "V" selectievakje - opent / sluit het veldenformulier

4.1.4. Grafische pictogrammen - links naar visualisatieresultaten (bewerkbaar)


4.2. Het formulier:

4.2.1. "X" selectievakje - opent / sluit het hele queryformulier

4.2.2. CSS - Selecteer Visualisatiethema

Modify Visualization Theme CSS-bestand moet bestaan ​​in "sjablonen / css /" directory - automatisch weergegeven.

4.2.3 Zichtbare velden selectievakje - toont / verbergt de veldfilterlijst

4.2.4. Tabblad: Tabbladnaam om toe te voegen of te verwijderen

4.2.5. Toevoegen verwijderen Knoppen - tabbladen toevoegen of verwijderen met de naam in Tab veld-

4.2.6. Selecteer Core Knop

Selecteer hoofdvelden die zichtbaar zijn op de tafel. Het is geüpdatet automatisch.

4.2.7. Deselecteer alles Knop

Deselecteer alle velden (moet worden gevolgd door enkele handmatig te selecteren)

4.2.7. Selecteer alles Knop

Selecteer alle velden (moet worden gevolgd door een aantal ervan handmatig te deselecteren)

4.2.8. Filter verbergen - Verberg het hele formulier

Dit is het equivalent van alle (X) selectievakjes

4.2.9. Uitvoeren Knop - Parameterinstellingen wijzigen

4.2.10. "V" selectievakje - toon / hoog filtervelden.


4.3. Tabbladen

Individueel gemaakte tabbladen met namen en voorinstellingen (opgeslagen in cfg / tabs.cfg het dossier).

Het bestand bevat eigenlijk naam en URL (gescheiden door tabtekens).


4.4. Inhoud van de tabel

Geeft alle velden weer die zijn beperkt door veldfilter.


Velden in de tabel:

4.4.1. Rennen - weergaven resultaat type

kaart- kaartresultaten op de kaart (een of meer velden kunnen worden geselecteerd)

geschiedenis - historische grafieken (een of meer velden kunnen worden geselecteerd)

tab - geeft een tabel weer (elke combinatie van velden kan worden geselecteerd)

bar - er wordt slechts één veld weergegeven op het staafdiagram

Door op een van de waarden te drukken, worden nieuwe resultaten geopend met geselecteerde velden (voor de huidige rij).


4.4.2. Kopieer (+/- links)

Toevoegen / verwijderen van een tabblad met de naam ingesteld in Tab veld. Het gebruikt alleen velden die in dezelfde rij van de tabel zijn geselecteerd.


4.4.3. Tabelcelkoppelingen

Als u op een andere veldnaam drukt, wordt de gegevensvisualisatie van het geselecteerde veld voor de geselecteerde rij gestart.


4.5. Gegevensvolgorde


De volgorde van de weergegeven velden is zoals de volgorde in het formulierformulier (echter tm veld wordt altijd naar het einde van de tekst gestuurd). Deze volgorde kan alleen worden gewijzigd door de URL-parameters direct te bewerken (velden volgorde deel).


4.6. Voorbeeld

Bijvoorbeeld: Tabblad instellen met Behaalde resultaat naam en bevat kaart met tijd en snelheid op de kaart

Alle beschrijvingen verwijzen naar rij waar "Map" tekst is in "Rennen" kolom.

  1. Voer naam in "Behaalde resultaat" in Tab veld (zonder aanhalingstekens)

  2. Zorg ervoor dat alle kolommen in de rij zijn gedeselecteerd

  3. selecteer tm, gps_speed_km alleen in de rij

  4. druk op + knop waar in de rij






5. Kaarten

Kaarten kunnen worden gestart vanuit MainForm met voorconfiguratie


5.1. Kaartinitialisatie

Kaartinitialisatie wordt handmatig uitgevoerd wanneer deze rechtstreeks met een link wordt uitgevoerd: > http: //%IP%/IoT/maps.php


  1. De gebruiker moet alle velden deselecteren (druk op Selectie ongedaan maken Knop)

  2. Druk op een selectievakje voor weergegeven velden (bijv. Ain5 (voor Smog-niveau) en tm (voor meetdatum / -tijd)

  3. druk op "V" selectievakje om velden te verbergen

  4. druk op Uitvoeren knop om DB-query uit te voeren en actuele informatie van alle sensoren / apparaten weer te geven

  5. Kaart met gegevens wordt na 30 seconden of langer bijgewerkt.


5.2. Optionele instellingen voor query

Instellingen beschreven van links naar rechts (op bovenstaande schermafbeelding).

5.2.1. MAP-schaal wijzigen (zoomniveau)

  1. Het zoomniveau kan worden gewijzigd met de (+/-) knoppen voor schaal (respectievelijk current_scale * 2 of current_scale / 2). Door op een van deze knoppen te drukken, wordt de schaal automatisch aangepast.

  2. Een andere manier is om Zoomniveau in te selecteren Zoom Veld met invoervak ​​en druk op Uitvoeren knop. In dit geval wordt de hele weergave / kaart opnieuw geladen en vernieuwd (duurt even tijdens het initialiseren).

5.2.2. IMEI (Selecteer apparaatveld)

IMEIveld bevat unieke apparaat-ID of unieke alias voor een apparaat. De standaardinstelling is * (asterisk) die de meest recente waarden en geolocatie voor elk apparaat toont.

Als u IMEI op een andere waarde instelt, worden historische gegevens van het geselecteerde apparaat weergegeven. Het heeft alleen zin voor mobiele en bewegende sensoren, anders zullen de resultaten op dezelfde positie op de kaart overlappen.


5.2.3. Lon, Lat (Velden voor lengtegraad, breedtegraadcoördinaten)

Stel de middenpositie van de kaart in. Dit veld wordt op de cursorpositie gezet wanneer de muisknop op de kaart wordt ingedrukt.


5.2.4. MAP-stijl wijzigen (thema)

Kaartstijl / thema kan worden geselecteerd uit Map ComboBox-veld (bijv. Donker, grijs, topografisch).

Verschillende kaartthema's kunnen verschillende maximale zoomniveaus hebben, dus het kan het juiste thema afdwingen om de kaartschaal te vergroten.


5.2.5. WHERE-clausule

Where-clausule wordt gebruikt voor aanvullende querytekenreeks {WHERE part} voor MySQL / MariaDB.

Met deze clausule wordt rekening gehouden voor het construeren van een complete QUERY-string voor het databaseresultaat. Het kan gegevens, tijd en andere waarden beperken door het aantal resultaten te beperken. In dit veld moeten originele tabelveldnamen (geen alias) worden gebruikt. Bijv.

  1. gps_speed_km> 10 // snelheid is meer dan 10 km / u

  2. ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)


5.2.6. Uitvoeren (Query-knop uitvoeren)

Het indrukken van deze knop is vereist om instellingen en parameters te wijzigen (behalve het indrukken van +/- toetsen).

De kaart wordt vanaf het begin geladen met nieuwe voorinstellingen.

De kaart wordt helemaal niet geladen als er geen gegevens beschikbaar zijn voor de huidige zoekopdracht.

5.2.7. Deselecteer alles (Verwijder alle velden uit de zoekopdracht)

Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om de resultaten op de kaart weer te geven.


5.2.8. "V" Selectievakje (veldformulier openen / sluiten)

Dit selectievakje wordt gebruikt om de selector van weer te geven velden weer te geven / te verbergen.


5.2.9. "X" Selectievakje (Queryformulier weergeven / verbergen)

Dit selectievakje maakt het mogelijk het hele formulier te verbergen behalve ( +/- toetsen)


De resultaten op de kaart worden continu ververst en bijgewerkt met nieuwe waarden

5.3. Voorbeeld

Bijv. Smogresultaten (sensor geïnstalleerd op de auto): smogniveau 2,5um deeltjes (Ain5), snelheid (gps_speed_km), datum / tijd (tm), kaart (2 - topografisch), zoomniveau 16,

Where-clausule:

"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 = geldige 3D-resultaten & datum = 2019-02-18 & snelheid> 0 km / u



6. Toon resultaten in de tabel

Toon resultaten in de tabel.

Aan "Belangrijkste vorm" druk op "tafel" item, na het selecteren van enkele velden om de vooraf geconfigureerde tabel weer te geven




6.1. Initialisatie van de tafel

Als de tafel is geopend via een link http: //%IP%/IoT/que.php? func = tabbladen het vereist voorafgaande initialisatie van de instellingen.

U kunt zichtbare velden selecteren (door op te drukken "Zichtbare velden" ) selectievakje.



  1. Druk op alle vereiste selectievakjes voor weergegeven velden

  2. Druk op het selectievakje "Zichtbare velden" om velden te verbergen

  3. Druk op de knop Execute om de DB-query uit te voeren en de tabel weer te geven


6.2. Optionele instellingen voor query

De instellingen worden van links naar rechts beschreven (op de schermafbeelding).

6.2.1. Sorteren - sorteer veld en volg de volgorde oplopend / aflopend

Sorteerveld is gelijk aan het indrukken van kolomkop.

6.2.2. DB / IMEI - Selecteer apparaat

IMEIveld bevat unieke apparaat-ID of unieke alias voor een apparaat. Met lege waarde toont het een tabel met de meest recente waarden.

Als u IMEI op een andere waarde instelt, worden historische gegevens van het geselecteerde apparaat weergegeven.


6.2.3. CSS - selecteer stijl (visualisatiethema)

6.2.4. Zichtbare velden - Toon / verberg veldenformulier

6.2.5. Leeg verwijderen - Geef geen lege kolommen weer

6.2.6. "X" Selectievakje (Queryformulier weergeven / verbergen)

6.2.7. Waar Clausule (voor gegevensbeperking)

Dit is een achtervoegsel voor MySQL / MariaDB aanvullende querytekenreeks {WHERE part}

Met deze clausule wordt rekening gehouden om de volledige QUERY-string voor het databaseresultaat te construeren. Het kan gegevens, tijd en andere waarden beperken door het aantal resultaten te beperken. In dit veld moeten originele tabelveldnamen (geen alias) worden gebruikt. Bijv.

  1. gps_speed_km> 10 // snelheid is meer dan 10 km / u

  2. ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)


6.2.8. Selecteer Core Knop (meest voorkomende velden inschakelen)


6.2.9. Deselecteer alles Knop (verwijder alle velden uit de query)

Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om de resultaten op de kaart weer te geven.


6.2.10. Uitvoeren (Query-knop uitvoeren)

Het indrukken van deze knop is vereist om instellingen en parameters te wijzigen (behalve het indrukken van +/- toetsen).

De tabel wordt vanaf het begin opnieuw geladen met nieuwe voorinstellingen.



6.2.11. "V" Selectievakje (veldformulier openen / sluiten)

Dit selectievakje wordt gebruikt om de selector van weer te geven velden weer te geven / te verbergen.



Resultaten in de tabel zijn gesorteerd op Soort lokale instelling. De sorteervolgorde kan worden gewijzigd door op de rijkop te drukken (eenmaal voor de ene richting, tweemaal voor een andere richting).

Sommige resultaten in kolommen linken naar verdere visualisatieschermen (hardgecodeerd).


Bij het weergeven van historische gegevens voor het apparaat moet deze worden beperkt om niet de volledige geschiedenisinformatie weer te geven, omdat dit kan leiden tot problemen met de prestaties of onvoldoende geheugen.


7. Staafdiagrammen.

Staafdiagrammen moeten worden uitgevoerd vanuit het hoofdformulier door op een enkel veld in de "Bar" -rij te drukken.

Het toont gesorteerde balken genormaliseerd tot maximale waarde, van de hoogste naar de laagste volgorde.

Het is handig om snel extreme resultaten te controleren en enkele acties te ondernemen.





Mouse Over-gebeurtenis geeft aanvullende informatie over het apparaat weer.


8. Historische grafieken.

Historische grafieken kunnen worden gestart vanuit het MainForm door op de geselecteerde kolom in de rij "Geschiedenis" te drukken (voor een enkel veld).

Voor Meerdere velden in de rij "Geschiedenis" moeten de gewenste velden worden aangevinkt en moet de link "Geschiedenis" worden ingedrukt in de kolom "Uitvoeren".

Historische resultaten zijn beperkt tot de afgelopen 24 uur + de volgende 24 uur (voor eventuele verversingsgrafieken), wanneer er geen limieten waren ingesteld.

8.1. Initialisatie van historische grafieken


Historische grafieken wanneer geopend via de hoofdlink vereisen initialisatie, net als andere resultaten, wanneer ze worden geopend via een link zonder voorkeurenparameters.

Er kunnen meerdere velden worden geselecteerd om verschillende items weer te geven. Het kan ook worden ingesteld in Veldfilterformulier.




  1. Druk op alle vereiste selectievakjes voor weergegeven velden

  2. Druk op het selectievakje "Zichtbare velden" om velden te verbergen

  3. Druk op de knop Execute om de DB-query uit te voeren en de tabel weer te geven


8.2. Optionele instellingen van historische grafieken

Items beschreven van boven en van links naar rechts (op de schermafbeelding).

8.2.1. IMEI - (Selecteer apparaat om historische gegevens weer te geven)

IMEIveld bevat unieke apparaat-ID of unieke alias voor een apparaat. Met * (asterix) waarde toont het een tabel met de meest recente waarden die geen betekenis hebben.

Als u IMEI op een andere waarde instelt, worden historische gegevens van het geselecteerde apparaat weergegeven.

8.2.2. Min - limiet minimale waarde van eerste veld

8.2.3. Max - limiet maximale waarde van eerste veld

8.2.4. "V" - Toon / verberg veldenformulier

8.2.5. Van: stel minimale datum / tijd in (*)

8.2.6. Naar: stel maximale datum datum / tijd in (*)

8.2.7. "X" Selectievakje (Queryformulier weergeven / verbergen)

8.2.8. "Waar" Clausule

Clausule voor het beperken van gegevensresultaten MySQL / MariaDB aanvullende querytekenreeks {WHERE part}.

Met deze clausule wordt rekening gehouden voor het construeren van een complete QUERY-string voor het databaseresultaat. Het kan gegevens, tijd en andere waarden beperken door het aantal resultaten te beperken. Originele tabelveldnamen (geen alias) moeten in dit veld worden gebruikt en een geldige SQL-syntaxis. Bijv.

  1. gps_speed_km> 10 // snelheid is meer dan 10 km / u

  2. ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)


8.2.9. Deselecteer alles Knop (verwijder alle velden uit de query)

Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om historische resultaten weer te geven.


8.2.10. Uitvoeren (Query-knop uitvoeren)

Het indrukken van deze knop is vereist om instellingen en parameters te wijzigen (behalve het tonen van velden of het querypaneel). De tabel wordt vanaf het begin opnieuw geladen met nieuwe voorinstellingen.

8.2.11. "V" Selectievakje (veldformulier openen / sluiten)

Dit selectievakje wordt gebruikt om de selector van weer te geven velden weer te geven / te verbergen.


8.3. Bars Variant: (geeft alleen beschikbare gegevens weer)



8,4. Continu variant (met dezelfde gegevens):



Muisaanwijzer geeft waarden van metingen en datum / tijd weer.

9. Compatibiliteit met webbrowser


Functie / WWW-browser

Chroom 72

FireFox 65

Rand

Opera 58

Kaarten

+

+

+

+

Historisch

+

+ (*)

+

+

Bars

+

+

+

+

Tabbladen

+

+

+

+


* - Firefox ondersteunt geen datum- / tijdkiezer (tekstveld moet handmatig worden bewerkt met de juiste datum-tijdnotatie).

Internet Explorer wordt niet ondersteund (gebruik Rand in plaats daarvan)

Andere webbrowsers zijn niet getest.



10. Thema's aanpassen

Webpagina's zijn gebaseerd op een algemeen sjabloonbestand op "Sjablonen" directory "* .template".

Bovendien bevat elk paginatype:

  1. "* .head" -bestand dat de koptekst van de pagina opslaat (links, geïmporteerde CSS, JavaScript-bestanden, enz. )

  2. "* .foot" -bestanden waarin de voettekst van de pagina wordt opgeslagen (links, enz. )


Het visualisatiethema kan worden aangepast aan de voorkeuren van de gebruiker door CSS-bestanden te verwerken en aan te passen. CSS-bestanden bevinden zich in "sjablonen / css" directory. Er kunnen verschillende webpagina-thema's worden gebruikt om geoptimaliseerd te maken voor bijvoorbeeld. afdrukken, smartphones, PAD-sjablonen.


Table views - selecteer een veld om een ​​CSS-bestand te kiezen voor volledige wijziging van het thema (opgeslagen in "templates / css / tabs" directory).




Map keer bekeken - algemeen thema wordt geselecteerd door "kaart" typ keuzelijst met invoervak. Bovendien is er een standaard CSS-bestand "templates / css / map.css" die wat extra functionaliteit bevat, zoals het verbergen / kleuren van resultaten op basis van zijn waarden. De rest van dit CSS-bestand is praktisch beperkt tot query- en veldformulieren.


De meeste @City Platform PHP-bestanden voor visualisatie accepteren cssparameter met de waarde van de bestandsnaam voor het thema (zonder extensie). Het bestand moet zich in de map "templates / css" bevinden en de naam is hoofdlettergevoelig.


Sommige elementen van de themaweergave bevinden zich rechtstreeks in het JavaScript-bestand in "template / js" directory.

Hoofd @Stad script"@ City.js" bevindt zich in de bovenste map. Hierin is geen wijzigingsmogelijkheid locatie, maar het script mag ook worden gekopieerd "sjablonen / js" directory en daar gewijzigd. Voor het gebruik van een individueel script moeten alle header-bestanden worden bijgewerkt.

11. Algoritmen Update


Sommige unieke sensoren hebben mogelijk speciale rekenfuncties nodig.

Er is geen mogelijkheid om meerdere varianten van @City Server Software, Front-end PHP-interface, wat veel problemen, versies en fouten zou veroorzaken.

De beste en gemakkelijkste manier om dit te bereiken, is het bijwerken van JavaScript "overlay" -bestanden voor een juiste weergave van de waarde / beschrijving.

Originele JS-scripts zijn open tekstbestanden en kunnen worden aangepast aan de behoeften van de klant. Zoals vermeld in het vorige hoofdstuk, moeten ze worden gekopieerd "sjablonen / js" directory waar de klant toegangsrechten heeft voor wijziging.


Technisch aspect bij het programmeren van @Stad systeem is geen onderwerp van dit document, maar een webontwikkelaar met basiskennis van HTML en JS kan de front-end webapplicatie aanpassen aan de individuele behoeften van de klant.


12. Databasestructuur


@City Database met een naam "IoT" of "* IoT" is verdeeld in tabellen (waarbij asterix het voorvoegsel is, afhankelijk van de hostingserver - indien nodig). DataBase kan worden waargenomen in PHPAdmin (webapplicatie) op de link http: //% IP% / phpmyadmin




Tabellen voor elk apparaat (waar * {asterix} is IMEI-adres - unieke ID):

Andere tafels:



12.1. "ithings_" en "*" tabellen structuur

12.2. Apparaatopdrachten (gebeurtenissen) wachtrij "* _c" tabel - structuur


Deze tabel is de wachtrij voor gebeurtenissen / opdrachten voor elk apparaat en heeft de volgende structuur:



12.3. Toegang tot resultaten uit databases - middenniveau (gegevens lezen)


Gegevens kunnen toegankelijk zijn zonder front-end webapplicatie. @City-systeem bevat script met functies op middenniveau. Resultaten worden geretourneerd in JSON-indeling.


12.3.1. Krijg de huidige statussen van alle apparaten

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


Query retourneert geheel "_ithings" tabel (huidige statussen van alle apparaten) in JSON-indeling:

[{ "land":"", "stad":"", "continent":"", "land":"", "regio":"", "subregio":"", "subsubregio":"", "stad":"", "wijk":"", "straat":"", "straatnr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "creatie":"2019-02-09 18:12:38", "laatste":"0000-00-00 00:00:00", "evenementen":"", "gebruiker":"", "voorbij lopen":"", "imei":"351580051067110", "sn":"", "toestand":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c02560000460", "hash_code":"", "addr":"", "fwnr":"", "gehandicapt":"", "gsm_nr":"", "verkoper":"", "tijdzone":"", "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":"", "evenementen":"", "out1":"0", "out2":"0", "out3":"0", "out4":"0", "out5":"0", "out6":"0", "out7":"0", "out8":"0", "out9":"0", "out10":"1", "uit11":"0", "uit12":"0", "uit13":"0", "uit14":"0", "uit15":"0", "out16":"0", "in 1":"0", "in 2":"0", "in3":"0", "in4":"0", "in5":"0", "in6":"0", "in7":"0", "in8":"0", "in9":"0", "in10":"0", "in11":"0", "in12":"0", "in13":"0", "in14":"0", "in15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "ain5":"0", "ain6":"44", "ain7":"44", "ain8":"45", "sens1":"0", "sens2":"0", "sens3":"0", "sens4":"0", "sens5":"0", "sens6":"0", "sens7":"0", "sens8":"0", "dimm1":"255", "dimm2":"255", "dimm3":"255", "dimm4":"255", "dimm5":"255", "dimm6":"255", "dimm7":"255", "dimm8":"255", "int1":"-16776767", "int2":"450", "int3":"", "int4":"", "int5":"", "int6":"0", "tekst1":"", "tekst2":"", "tekst3":"", "tekst4":"", "tekst5":"", "tekst6":"" }]

12.3.2. Ontvang historische gegevens voor het apparaat

Vraag historische gegevens van een enkel apparaat op door IMEI-nr:

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


Omdat de hele tabel miljoenen rijen kan bevatten, moet deze worden beperkt met de WHERE-component om de server niet op te hangen.

Aanvullende URL-parameters voor parameters:

func - imeijson

imei - IMEI van apparaat

veld- - velden die in de resultaten moeten worden weergegeven (coma-gescheiden lijst)

min - minimumwaarde voor het eerste veld uit de lijst

max. hoogte - maximale waarde voor het eerste veld uit de lijst

soft - veld voor sorteren

tm - veld wordt automatisch toegevoegd aan de resultaten.

where - Where-clausule om gegevens te beperken


Voorbeeld:

We willen het volgende resultaat krijgen

voor apparaat met imei=356345080018095

toon velden: ain5, ain6, gps_lat, gps_long

en limiet ain5 binnen bereik ( 1, 10.000 ) - moet het eerste veld in de lijst zijn

en GPS hebben geldige gegevens (gps_fix = 3)

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


Geconstrueerde URL-string:

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


Zoekopdrachtresultaten:

[{ "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. Krijg een lijst met apparaten - één veld van de huidige statussen met beperking

Deze functie retourneert beperkte gegevens uit de tabel "_ithings"


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



Parameters:

func - fieldjson

veld- - veld dat in de resultaten moet worden weergegeven - imei en tm worden automatisch toegevoegd

min - minimumwaarde voor het veld

max. hoogte - maximale waarde voor het veld


Voor bovenstaande queryreeks wordt deze geretourneerd resultaten van ain5, imei, tm velden:

als ain5 is binnen bereik (13.5000)


Zoekopdrachtresultaten:

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