@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
@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.
@City IoT platform is gewijd aan de volgende iSys.PL-producten
IoT - RF / LoRaWAN (internet der dingen)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Cell Internet of Things)
Wifi
Ethernet
@City (eCity) Cloud IoT Platform is een systeem met verschillende afmetingen voor IP IoT-producten (samen genoemd als @City Hardware of CioT-apparaten ):
@Stad
@Licht
@Metering
@Spoor
@AirQ
@Bin
@City IoT platform ondersteunt de volgende protocollen voor communicatie:
UDP - aanbevolen voor CIoT-sensoren / -apparaten (vooral NBIoT) - laagste gegevensgebruik
TCPIP - aanbevolen voor apparaten met bidirectionele communicatie - handshaking / bevestiging
HTTP - alleen aanbevolen voor gegevenstoegang / visualisatie / export / "wolk naar wolk"
HTTP Webhooks - voor LoRaWAN-communicatie tussen LoRaWAN Network / Application Server en @City Cloud.
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. ).
@City IoT platform ondersteunt:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - apparaten (UDP / TCPIP-communicatie)
LoRaWAN-apparaten (HTTP Webhooks) - via LoRaWAN-gateway en LoRaWAN-netwerk / applicatieservers
Ethernet-controllers (UDP / TCP-communicatie)
WiFi-controllers (UDP / TCP-communicatie)
Toekomstige IP-producten
Niet-IP-producten via aanvullende lokale @ City / eHouse.PRO Hardware Gateway
@City IoT Platform is bedoeld voor apparaten / knooppunten:
Native iSys-producten:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - speciale producten voor @City Platform
Ethernet - speciale producten voor @City Platform
Coproductieproducten (vervaardigd door derden onder iSys-licentie en extern merk)
Franchiseproducten (vervaardigd door derden onder iSys-licentie met iSys-logo's)
@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):
privé / openbare toegang
algemene apparaten tellen
update van de frequentie van de apparaatstatus
verversingssnelheid van gegevens
Er zijn verschillende varianten van VPS, afhankelijk van:
Prijs
datacenter geolokalisatie
Virtuele processorkernen (1-8)
Virtueel RAM (1-32 GB)
SSD-schijf (20GB-1TB)
Er zijn tientallen Dedicated servers, afhankelijk van:
Prijs
datacenter geolokalisatie
Processorkernen (4 .. 32)
RAM (16 .. 512 GB)
SSD / HDD (256 GB .. 8 TB)
Het @City IoT-platform is bedoeld voor één klant:
lokale overheden en autoriteiten (stad, gemeenschap, land)
B2B (voor externe eigenaar)
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.
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:
asynchroon gegevens ontvangen van apparaten (via protocollen: UDP, TCP IP, HTTP)
het datagebruik en de kosten tussen apparaten en cloud minimaliseren (door gebruik te maken van communicatieprotocollen op laag niveau UDP, TCP IP)
gecodeerde status van apparaten ontvangen (via alle communicatiemedia)
autorisatie en validatie van gegevens van apparaten door hun statussen te decoderen
de status van apparaten decoderen en direct updaten naar MariaDB / MySQL-tabellen (in onbewerkte gegevensindeling)
huidige gegevenstabel (bevat alleen de nieuwste status van elk apparaat)
historische gegevenstabel (bevat alle statussen voor één apparaat)
stuur lopende opdrachten (gebeurtenissen) naar apparaten
het verzekeren van handshaking, verificatie en bevestigingen
@City Server-software is voor elke gebruiker hetzelfde en kan niet voor verschillende klanten worden aangepast.
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.
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.
De toegangsrechten van de klant (tot fysieke server) zijn beperkt.
Bestandstoegang alleen voor de directory "sjablonen" (native tekstbestanden - .txt, .js, .css, .html):
pure HTML-bestanden toevoegen, verwijderen en wijzigen (front-end GUI / interface-ontwikkeling)
pure JavaScript-bestanden toevoegen, verwijderen en wijzigen (front-end GUI / interface-ontwikkeling en algoritmen)
pure CSS-bestanden toevoegen, verwijderen en wijzigen (front-end - aangepaste weergaven / thema's)
toevoegen, verwijderen, wijzigen van tekstbestanden van sjablonen (front-end GUI)
toevoegen, verwijderen, wijzigen van tabbladen, snelkoppelingen, koppelingen naar gegevensresultaten
Andere toegangsrechten:
Volledige toegang tot @City Cloud Database MySQL / MariaDB waar alle apparaatgegevens worden opgeslagen
Toegang tot webservices is gedefinieerd (inloggegevens) voor de klant.
Het is de klant niet toegestaan om inloggegevens door te geven aan derden (meervoudige toegang tot de resultaten kan de prestaties, stabiliteit en beveiliging van het algehele systeem beïnvloeden)
Onder speciale omstandigheden en bij gebruik van krachtige Dedicated Server, kan een openbare account worden ingesteld om de meest actuele gegevens te observeren (niet historisch).
De gebruiker mag gegevens dupliceren naar zijn eigen MySQL-server en zijn eigen gegevensanalyse en -verwerking uitvoeren, om de prestaties van @City Server niet te beïnvloeden
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.
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".
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
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.
Er zijn verschillende opties voor zaken en samenwerking:
import / export kant-en-klare producten (schakelborden, apparaten) - eindproducten
import / export van OEM-producten (PCB's, controllers, enz.) - Tussenproducten, reserveonderdelen
franchise - productie op basis van onze licentie voor lokale markten (wij leveren alleen geprogrammeerde microcontrollers) onder iSys - Intelligent Systems Brands
Coproductie - (zoals hierboven) maar onder externe merken
@City-platform ondersteunt aanpasbare front-end-sjabloon voor gegevensvisualisatie, query's, beperking en verwerking (huidige / historische gegevens):
visualiseer geselecteerde gegevens op de kaart (geolokalisatie)
toont geselecteerde gegevens en resultaten in de tabellen
toont geselecteerde gegevens in staafdiagrammen
toont geselecteerde gegevens in historische grafieken
gegevens exporteren naar applicaties van derden en verdere verwerking
andere functionaliteit wordt bijgewerkt op individuele verzoeken.
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.
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
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)
Modify Visualization Theme CSS-bestand moet bestaan in "sjablonen / css /" directory - automatisch weergegeven.
Selecteer hoofdvelden die zichtbaar zijn op de tafel. Het is geüpdatet automatisch.
Deselecteer alle velden (moet worden gevolgd door enkele handmatig te selecteren)
Selecteer alle velden (moet worden gevolgd door een aantal ervan handmatig te deselecteren)
Dit is het equivalent van alle (X) selectievakjes
Individueel gemaakte tabbladen met namen en voorinstellingen (opgeslagen in cfg / tabs.cfg het dossier).
Het bestand bevat eigenlijk naam en URL (gescheiden door tabtekens).
Geeft alle velden weer die zijn beperkt door veldfilter.
Velden in de tabel:
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).
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.
Als u op een andere veldnaam drukt, wordt de gegevensvisualisatie van het geselecteerde veld voor de geselecteerde rij gestart.
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).
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.
Voer naam in "Behaalde resultaat" in Tab veld (zonder aanhalingstekens)
Zorg ervoor dat alle kolommen in de rij zijn gedeselecteerd
selecteer tm, gps_speed_km alleen in de rij
druk op + knop waar in de rij
Kaarten kunnen worden gestart vanuit MainForm met voorconfiguratie
Kaartinitialisatie wordt handmatig uitgevoerd wanneer deze rechtstreeks met een link wordt uitgevoerd: > http: //%IP%/IoT/maps.php
De gebruiker moet alle velden deselecteren (druk op Selectie ongedaan maken Knop)
Druk op een selectievakje voor weergegeven velden (bijv. Ain5 (voor Smog-niveau) en tm (voor meetdatum / -tijd)
druk op "V" selectievakje om velden te verbergen
druk op Uitvoeren knop om DB-query uit te voeren en actuele informatie van alle sensoren / apparaten weer te geven
Kaart met gegevens wordt na 30 seconden of langer bijgewerkt.
Instellingen beschreven van links naar rechts (op bovenstaande schermafbeelding).
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.
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).
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.
Stel de middenpositie van de kaart in. Dit veld wordt op de cursorpositie gezet wanneer de muisknop op de kaart wordt ingedrukt.
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.
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.
gps_speed_km> 10 // snelheid is meer dan 10 km / u
ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)
gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)
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.
Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om de resultaten op de kaart weer te geven.
Dit selectievakje wordt gebruikt om de selector van weer te geven velden weer te geven / te 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
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
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
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.
Druk op alle vereiste selectievakjes voor weergegeven velden
Druk op het selectievakje "Zichtbare velden" om velden te verbergen
Druk op de knop Execute om de DB-query uit te voeren en de tabel weer te geven
De instellingen worden van links naar rechts beschreven (op de schermafbeelding).
Sorteerveld is gelijk aan het indrukken van kolomkop.
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.
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.
gps_speed_km> 10 // snelheid is meer dan 10 km / u
ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)
gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)
Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om de resultaten op de kaart weer te geven.
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.
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.
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.
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.
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.
Druk op alle vereiste selectievakjes voor weergegeven velden
Druk op het selectievakje "Zichtbare velden" om velden te verbergen
Druk op de knop Execute om de DB-query uit te voeren en de tabel weer te geven
Items beschreven van boven en van links naar rechts (op de schermafbeelding).
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.
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.
gps_speed_km> 10 // snelheid is meer dan 10 km / u
ain5> 3 // ain5 is groter dan 3 (houdt 2.5um deeltjesaantal vast - smogniveau)
gps_speed_km> 10 en ain6> 5 // snelheid is meer dan 10 km / u en ain6 is groter dan 5 (met 10um deeltjesaantal - smogniveau)
Nadat u op deze knop hebt gedrukt, moet minimaal één veld handmatig worden geselecteerd om historische resultaten weer te geven.
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.
Dit selectievakje wordt gebruikt om de selector van weer te geven velden weer te geven / te verbergen.
Muisaanwijzer geeft waarden van metingen en datum / tijd weer.
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.
Webpagina's zijn gebaseerd op een algemeen sjabloonbestand op "Sjablonen" directory "* .template".
Bovendien bevat elk paginatype:
"* .head" -bestand dat de koptekst van de pagina opslaat (links, geïmporteerde CSS, JavaScript-bestanden, enz. )
"* .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.
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.
@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):
"* _t" - tokens voor autorisatie van huidige gebruikers (niet gebruikt voor Single-Customer-clouds)
"* _c" - opdrachten (gebeurtenissen) wachtrij - om naar het apparaat te worden verzonden
"*" - alle gedecodeerde statusresultaten.
Andere tafels:
"ithings_" tabel - bevat gedecodeerde huidige status van alle apparaten (het wordt gekopieerd tijdens het bijwerken van een van "*" tafels). Structuur van ithings_ tafel is bijna hetzelfde als de "*" tafels. "ithings_" hebben extra velden voor postadres en beschrijvingen.
"gebruikers" -tabel is beperkt en moet worden gewijzigd.
"idx" - inhoudsopgave
"tm" - automatisch tijdstempel
"dt" - unix tijdstempel
"imei" - uniek apparaatadres
"rssi" - RSSI-signaalniveau
"rsrp" - RSRP-signaal
"evenementen" - wachtende gebeurtenissen om naar de controller te worden verzonden
"out1" .. "out16" - status gedecodeerde uitgangen
"in 1" .. "in16" - status gedecodeerde ingangen
"ain1" .. "ain8" - gedecodeerde ADC-waarden (RAW)
"sens1" .. "sens8" - geconverteerde sensorwaarden (afhankelijk van apparaattype)
"dimm1" .. "dimm8" - gedecodeerde dimmerwaarden (afhankelijk van apparaattype)
"int1" .. "int6" - gedecodeerde tellerwaarden (afhankelijk van apparaattype)
"tekst1" .. "tekst6" - gedecodeerde tekstwaarden (afhankelijk van apparaattype)
"creatie" - aanmaakdatum / -tijd apparaat
"laatste" - laatste datum / tijd
"gebruiker" - toekomstig gebruik
"pass" - toekomstig gebruik
"sn" - gsm serienr
"toestand" - huidige controllerstatus niet gedecodeerd in hex-formaat
"hash_code" - toekomstig gebruik
"addr" - kort apparaatadres
"fwnr" - firmware nr
"uitgeschakeld" - uitgeschakeld apparaat (niet uitgevoerd)
"gsm_nr" - CIoT gsm-nummer
"vendor" - leverancierscode (voor franchise / coproductie)
"tijdzone" - Tijdzoneverschuiving
"dst" - Gebruik instellingen voor dagelijkse besparingen
"gps_lat" - GPS-breedtegraad
"gps_long" - GPS-lengtegraad
"gps_hdop" - GPS HDOP
"gps_alt" - GPS-hoogte
"gps_fix" - GPS-fixatie (moet 3 zijn - voor geldige resultaten)
"gps_cog" - GPS-tandwiel
"gps_speed_km" - GPS-snelheid in [km / h]
"gps_sat" - GPS-satellieten gevonden
"continent", "land", "regio", "subregio", "subsubregio", "stad", "district", "straat", "straatnr", "item_nr" - Klantadres en beschrijvingsvelden (!!!! Niet beschikbaar voor "*" historische tabellen)
"log" - loggegevens
De veldnamen zijn belangrijk voor het maken van SQL-query's om de zoekfunctionaliteit te vergroten, omdat de originele naam moet worden gebruikt in SQL-instructie.
Deze tabel is de wachtrij voor gebeurtenissen / opdrachten voor elk apparaat en heeft de volgende structuur:
"command" - commando dat verzonden moet worden of al verzonden is naar de controller
"bevestigd" - bevestigingsvlag als het al verzonden en bevestigd was
"date" - unix tijdstempel van gebeurtenis
"updated" - vlag voor automatisch bijwerken (tijdstempel datum / tijd)
Gegevens kunnen toegankelijk zijn zonder front-end webapplicatie. @City-systeem bevat script met functies op middenniveau. Resultaten worden geretourneerd in JSON-indeling.
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":"" }]
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" }]
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" }]