@City IoT Cloud-Plattform




iSys - Intelligente Systeme IoT Lösungen









IoE.Systems

Inhaltsverzeichnis

1. Einführung. 5

1.1 Unterstützte Gerätetypen. 5

1.2. Unterstützte Produkttypen. 5

1.3. Unterstützte Kommunikationsprotokolle 5

1.4. Unterstützte Kommunikationstechnologie der Geräte 6

1.5. @ City Cloud Server 6

1.5.1. Server- und Kommunikationsgateways 7

1.5.2 HTTP LoRaWAN-Integration 7

1.5.3. Front-End-Schnittstelle 8

1.5.3. Serverzugriffsrechte 8

1.6. Intelligente Geräte 9

1.6.1. CIoT - GSM - Geräte 9

1.6.3. BAS, BMS, IoT - Ethernet- und WiFi-Geräte 9

1.6.2. IoT -LoRaWAN-Geräte 9

1.7. Business-to-Business-Optionen (B2B) 9

2. @City IoT Plattformfunktionalität 10

3. Hauptseite 11

4. Hauptformular 11

4.1. Header 12

4.1.1. Home Link - (öffnet die aktuelle Ergebnistabelle) 12

4.1.2. Kontrollkästchen "X" - öffnet / schließt das Abfrageformular 12

4.1.3. Kontrollkästchen "V" - öffnet / schließt das Feld Formular 12

4.1.4. Grafische Symbole - Links zu Visualisierungsergebnissen (bearbeitbar) 12

4.2. Form: 12

4.2.1. Kontrollkästchen "X" - öffnet / schließt das gesamte Abfrageformular 12

4.2.2. CSS - Wählen Sie Visualisierungsthema 12

Kontrollkästchen 4.2.3.Visible Fields - Sichtbare Feldfilterliste ein- / ausblenden 12

4.2.4. Registerkarte: Name der Registerkarte zum Hinzufügen oder Entfernen von 12

4.2.5. Hinzufügen / Entfernen von Schaltflächen - Hinzufügen oder Entfernen von Registerkarten mit dem Namen im Registerkartenfeld 12

4.2.6. Wählen Sie die Kerntaste 12

4.2.7. Deaktivieren Sie die Schaltfläche Alle 12

4.2.7. Wählen Sie die Schaltfläche Alle 12

4.2.8. Filter ausblenden - Ganze Form ausblenden 12

4.2.9. Schaltfläche "Ausführen" - Parametereinstellungen ändern 13

4.2.10. Kontrollkästchen "V" - Filterfelder anzeigen / hoch. 13

4.3. Registerkarten 13

4.4. Tabelleninhalt 13

4.4.1. Run - Views Ergebnistyp 13

4.4.2. Kopieren (+/- Links) 13

4.4.3. Tabellenzellen-Links 13

4.5. Datenreihenfolge 13

4.6. Beispiel 13

5. Karten 15

5.1. Karteninitialisierung 15

5.2. Optionale Einstellungen für die Abfrage 15

5.2.1. Ändern der MAP-Skala (Zoomstufe) 16

5.2.2. IMEI (Gerätefeld auswählen) 16

5.2.3. Lon, Lat (Längen- und Breitengradkoordinatenfelder) 16

5.2.4. Ändern des MAP-Stils (Design) 16

5.2.5. WO Klausel 16

5.2.6. Ausführen (Schaltfläche "Abfrage ausführen") 16

5.2.7. Deaktivieren Sie Alle (Alle Felder aus der Abfrage entfernen) 17

5.2.8. Kontrollkästchen "V" (Feldformular öffnen / schließen) 17

5.2.9. Kontrollkästchen "X" (Abfrageformular anzeigen / ausblenden) 17

5.3. Beispiel 17

6. Ergebnisse in Tabelle 18 anzeigen

6.1. Initialisierung von Tabelle 18

6.2. Optionale Einstellungen für die Abfrage 19

6.2.1. Sortieren - Feld sortieren und aufsteigend / absteigend sortieren 19

6.2.2. DB / IMEI - Gerät auswählen 19

6.2.3. CSS - Stil auswählen (Visualisierungsthema) 20

6.2.4. Sichtbare Felder - Ein- / Ausblenden von Feldern Formular 20

6.2.5. Leer entfernen - Keine leeren Spalten anzeigen 20

6.2.6. Kontrollkästchen "X" (Abfrageformular anzeigen / ausblenden) 20

6.2.7. Where-Klausel (zur Datenbeschränkung) 20

6.2.8. Wählen Sie die Kerntaste (Aktivieren Sie die häufigsten Felder) 20

6.2.9. Deaktivieren Sie die Schaltfläche Alle (Alle Felder aus der Abfrage entfernen) 20

6.2.10. Ausführen (Schaltfläche "Abfrage ausführen") 20

6.2.11. Kontrollkästchen "V" (Feldformular öffnen / schließen) 20

7. Balkendiagramme. 21

8. Historische Diagramme. 22

8.1. Initialisierung historischer Diagramme 22

8.2. Optionale Einstellungen für historische Diagramme 23

8.2.1. IMEI - (Gerät auswählen, um historische Daten anzuzeigen) 23

8.2.2. Min - Limit Minimalwert des ersten Feldes 23

8.2.3. Max - Grenzmaximalwert des ersten Feldes 23

8.2.4. "V" - Felder ein- / ausblenden Formular 23

8.2.5. Von: Mindestdatum / -zeit einstellen (*) 23

8.2.6. An: Maximales Datum, Datum / Uhrzeit (*) einstellen 23

8.2.7. Kontrollkästchen "X" (Abfrageformular anzeigen / ausblenden) 23

8.2.8. "Wo" Klausel 23

8.2.9. Deaktivieren Sie die Schaltfläche Alle (Alle Felder aus der Abfrage entfernen) 23

8.2.10. Ausführen (Schaltfläche "Abfrage ausführen") 23

8.2.11. Kontrollkästchen "V" (Feldformular öffnen / schließen) 24

8.3. Balkenvariante: (zeigt nur verfügbare Daten an) 24

8.4. Kontinuierliche Variante (mit den gleichen Daten): 24

9. Webbrowser-Kompatibilität 25

10. Themenanpassung 26

11. Aktualisierung der Algorithmen 27

12. Datenbankstruktur 28

12.1. Tabellenstruktur "ithings_" und "*" 29

12.2. Warteschlange "* _c" für Gerätebefehle (Ereignisse) - Struktur 30

12.3. Zugriff auf Ergebnisse aus Datenbanken - Mittelstufe (Lesen von Daten) 30

12.3.1. Aktuelle Status aller Geräte abrufen 30

12.3.2. Abrufen historischer Daten für das Gerät 31

12.3.3. Liste der Geräte abrufen - einzelnes Feld aus aktuellen Status mit Einschränkung 32


1. Einführung.

@City IoT Cloud Platform ist dediziert "Mikrowolke" System für einzelne Kunden. Die Plattform kann nicht gemeinsam genutzt werden und nur ein Kunde hat Zugriff auf physische oder virtuelle Server (VPS oder dedizierte Server). Der Kunde kann eines von Dutzenden Rechenzentren in Europa oder weltweit auswählen.

1.1 Unterstützte Gerätetypen.

Die @ City IoT -Plattform widmet sich den folgenden iSys.PL-Produkten



1.2. Unterstützte Produkttypen.

@City (eCity) Cloud IoT Platform ist ein System unterschiedlicher Größe für IP IoT -Produkte (zusammen genannt als @ City Hardware oder CioT-Geräte ):


1.3. Unterstützte Kommunikationsprotokolle

Die @ City IoT -Plattform unterstützt folgende Kommunikationsprotokolle:

Daten, die vom Controller an den Cloud-Server und umgekehrt gesendet werden, werden in einem eindeutigen Binärformat verschlüsselt, um die geringste Datengröße und die Sicherheit zu erhöhen. Jeder Partner erhält seinen eigenen eindeutigen Verschlüsselungsschlüssel für die Geräteautorisierung, die Überprüfung der Datengültigkeit usw.


Für Nicht-eHouse / eCity-Geräte können wir individuelle Verschlüsselungsalgorithmen bereitstellen ( "C" Quellcode) für jeden Partner des Mikroprozessors zum Schutz der Daten vor der Kommunikation.

In diesem Fall sind die Daten während der bidirektionalen Kommunikation über die öffentlichen Kommunikationsmedien (Internet, Luft usw.) vollständig sicher. ).


1.4. Unterstützte Kommunikationstechnologie der Geräte

@City IoT Plattform unterstützt:


@City IoT Die Plattform ist Geräten / Knoten gewidmet:


1.5. @ City Cloud Server

Die @ City-Software funktioniert auf Linux-basiertem VPS (Virtual Private Server) oder Dedicated Server auf der Internetseite, abhängig von der angeforderten Leistung des Server (später Server genannt):


Es gibt verschiedene Varianten von VPS, abhängig von:


Dutzende dedizierter Server sind vorhanden, abhängig von:


Die @ City IoT -Plattform richtet sich an Einzelkunden:


Da es sich nicht um einen gemeinsam nutzbaren Server zwischen Kunden handelt, vereinfacht es den Sicherheitszugriff und Leistungsprobleme. Aus diesem Grund ist nur der Kunde für effektive Sicherheit, Stabilität, Effizienz, Datendurchsatz usw. verantwortlich. Bei unzureichender Leistung kann der Kunde einen höheren Tarif (VPS oder dedizierter Server) erwerben, der für die erwartete Funktionalität und Leistung optimaler ist.

In besonderen Fällen "Cloud to cloud" Die Kommunikation könnte für die Globalisierung und Zentralisierung von Daten in größeren Bereichen anstelle einer Cloud mit mehreren Kunden implementiert werden.

1.5.1. Server- und Kommunikationsgateways

Die Kommunikation von @City Server basiert auf einer Low-Level-Anwendung zur Leistungsmaximierung.

Hauptmerkmale der @ City Server-Anwendung sind:

Die @ City Server-Software ist für jeden Benutzer gleich und kann nicht für verschiedene Kunden angepasst werden.

1.5.2 HTTP LoRaWAN-Integration

LoRaWAN-Controller werden über die HTTP-Schnittstelle (Webhooks), die auf dem LoRaWAN-Netzwerk / Anwendungsserver verfügbar ist, in die @ City-Cloud integriert.

Es werden verschiedene Arten von Netzwerk- / Anwendungsservern unterstützt:

TTN (begrenzte Zeit "In der Luft" und die maximale Anzahl von Befehlen, die an den Treiber gesendet werden und kein Firmware-Upgrade unterstützen)

LoraWAN-Stack (Erfordert Hosting auf einem physischen Gerät mit Internetzugang).

LoraServer.Io (Hosting auf einem physischen Gerät mit Internetzugang erforderlich - nur Daten an den Server senden und kein Firmware-Upgrade unterstützen)



Die @ City Cloud für LoRaWAN-Controller ist wie für andere Schnittstellen unterteilt. Es wird im vorherigen Kapitel besprochen.

1.5.3. Front-End-Schnittstelle

Die Front-End-Schnittstelle wird mit PHP-Skripten zum Extrahieren angepasster Daten aus der @ City Cloud-Datenbank realisiert. Es verwendet einen sehr elastischen Suchmechanismus, der auf ursprünglichen SQL-Abfragen basiert, um die gewünschten Daten zu begrenzen. Die Schnittstelle liefert Abfrageergebnisse im JSON-Format zur weiteren Dekodierung und Verarbeitung durch JavaScript Front-End-Webanwendung.

Die ursprüngliche Front-End-Oberfläche ist für jeden Benutzer gleich und kann nicht für verschiedene Kunden angepasst werden.

Die Overlay-Oberfläche kann von unseren Mitarbeitern oder in Zusammenarbeit erstellt werden, um die Anpassung für den Kunden sicherzustellen.

1.5.3. Serverzugriffsrechte

Kundenzugriffsrechte (auf physische Server) sind begrenzt.

Dateizugriff nur für das Verzeichnis "Vorlagen" (native Textdateien - .txt, .js, .css, .html):

Andere Zugriffsrechte:


iSys - Mitarbeiter von Intelligent Systems - haben uneingeschränkten Zugriff auf den gesamten Server, einschließlich des Root-Kontos und des vollständigen DB-Zugriffs für Wartungszwecke.

Unter bestimmten Umständen kann iSys dem Kunden nach Überprüfung des Quellcodes und Ausführen von Tests zusätzliche eingeschränkte Rechte (PHP-Skripte, Dateien) gewähren, wenn dies die Gesamtsicherheit, Stabilität und Leistung des Systems nicht beeinträchtigt.


1.6. Intelligente Geräte

1.6.1. CIoT - GSM-Geräte

Unsere Geräte enthalten einen Mikrocontroller und ein GSM / GPS / GNSS-Modul (2G..4G, NBIoT, CATM1) für die Kommunikation. Der Mikrocontroller enthält einen verschlüsselten Bootloader für ein sicheres OTA-Firmware-Upgrade. Dies ermöglicht die Erstellung vieler Systemvarianten auf derselben Basis "CIoT Smart-Gerät".


1.6.3. BAS, BMS, IoT - Ethernet- und WiFi-Geräte


Ethernet- und WiFi-Controller ermöglichen die IP-basierte Kommunikation mit dem System (ohne Gebühren für die Datenübertragung an den GSM-Betreiber). Diese Geräte haben auch einen Bootloader verschlüsselt und Geräte werden möglicherweise über die native Schnittstelle aktualisiert. Für WiFi gibt es ein OTA-Firmware-Upgrade vom Hauptserver


1.6.2. IoT - LoRaWAN-Geräte

LoRaWAN ermöglicht die Datenübertragung über sehr große Entfernungen (bis ca. 15 km). Dieser Bereich hängt von der Geschwindigkeit der Datenübertragung, der Datenmenge, der Urbanisierung des Gebiets und der Effizienz der Funkwege der Geräte ab.

Unsere Geräte umfassen einen Mikrocontroller und ein LoRaWAN-Modul für die Kommunikation. Der Mikrocontroller enthält einen verschlüsselten Bootloader für ein sicheres OTA-Software-Update. Auf diese Weise können Sie mehrere Systemvarianten basierend auf derselben erstellen "IoT smart device". Die Geräte arbeiten im ISM Open Band ohne zusätzliche Abonnementgebühren. Es ist erforderlich, LoRaWAN-Gateways zu verwenden, um den gesamten Bereich mit Internetzugang abzudecken. Bei vorhandenen LoRaWAN-Gattern innerhalb des Gerätebereichs (konfiguriert für TTN-Server) ist es möglich, Informationen über diese zu senden. Für ein Firmware-Upgrade ist ein eigener LoRaWAN-Netzwerk- / Anwendungsserver und eine gute Kommunikationsreichweite erforderlich.

1.7. Business to Business (B2B) -Optionen


Es gibt verschiedene Möglichkeiten für Geschäft und Zusammenarbeit:

2. @City IoT Plattformfunktionalität

Die @ City-Plattform unterstützt anpassbare Front-End-Vorlagen für die Datenvisualisierung, -abfrage, -begrenzung und -verarbeitung (aktuelle / Verlaufsdaten).:


Auf das Front-End des Benutzers kann über statische IP- oder DNS-Umleitungsdomäne / Subdomäne / Datei zugegriffen werden, sofern verfügbar.


Beispielhafte & Demo-Installation (nur für potenzielle Kunden aktiviert).

Bitte teilen Sie uns mit, wann Sie es testen möchten, um den öffentlichen Zugriff auf die Plattform zu ermöglichen.

Möglicherweise ist eine statische IP-Adresse des Remotecomputers erforderlich, um die Kommunikation mit der @ City-Plattform zu ermöglichen.


3. Hauptseite

Die Hauptseite wird aus Sicherheitsgründen absichtlich leer gelassen: http: //% YourIP% / IoT /

Es kann einzeln aktiviert und bearbeitet werden und enthält Links zu allen verfügbaren Diensten von @City IoT Plattform wenn es erforderlich ist


4. Hauptform

Das Hauptformular dient zum Erstellen neuer Voreinstellungen und Registerkarten: http: //%IP%/IoT/que.php

Dies ist das erste Formular zum Erstellen von Ergebnissen, Ansichten und Registerkarten für jede Konfiguration




Beschreibungen (Von oben und von links nach rechts)

4.1. Header

4.1.1. Home Link - (öffnet die aktuelle Ergebnistabelle)

4.1.2. "X" Kontrollkästchen - öffnet / schließt das Abfrageformular

4.1.3. "V" Kontrollkästchen - öffnet / schließt das Formular "Felder"

4.1.4. Grafische Symbole - Links zu Visualisierungsergebnissen (bearbeitbar)


4.2. Bilden:

4.2.1. "X" Kontrollkästchen - öffnet / schließt das gesamte Abfrageformular

4.2.2. CSS - Wählen Sie Visualisierungsthema

CSS-Datei zum Ändern des Visualisierungsthemas muss in vorhanden sein "Vorlagen / CSS /" Verzeichnis - automatisch aufgelistet.

4.2.3.Sichtbare Felder Kontrollkästchen - Ein- / Ausblenden der Feldfilterliste

4.2.4. Tab: Tab-Name zum Hinzufügen oder Entfernen

4.2.5. Hinzufügen / Entfernen Schaltflächen - Hinzufügen oder Entfernen von Registerkarten mit dem Namen in Tab Feld

4.2.6. Wählen Sie Core Taste

Wählen Sie die in der Tabelle sichtbaren Hauptfelder aus. Es ist aktualisiert automatisch.

4.2.7. Alle abwählen Taste

Deaktivieren Sie alle Felder (müssen Sie folgen, indem Sie einige manuell auswählen).

4.2.7. Wählen Sie Alle Taste

Wählen Sie alle Felder aus (einige müssen manuell deaktiviert werden)

4.2.8. Filter ausblenden - Ganze Form ausblenden

Dies entspricht allen (X) Kontrollkästchen

4.2.9. Ausführen Schaltfläche - Ändern Sie die Parametereinstellungen

4.2.10. "V" Kontrollkästchen - Filterfelder anzeigen / hoch.


4.3. Tabs

Individuell erstellte Registerkarten mit Namen und Voreinstellungen (gespeichert in cfg / tabs.cfg Datei).

Die Datei enthält tatsächlich Name und URL (getrennt durch Tabulatorzeichen).


4.4. Tabelleninhalt

Zeigt alle durch Feldfilter begrenzten Felder an.


Felder in der Tabelle:

4.4.1. Lauf - Ansichten Ergebnistyp

Karte- Zuordnungsergebnisse auf der Karte (ein oder mehrere Felder können ausgewählt werden)

Geschichte - historische Diagramme (ein oder mehrere Felder können ausgewählt werden)

tab - Zeigt die Tabelle an (eine beliebige Kombination von Feldern kann ausgewählt werden)

Bar - Im Balkendiagramm wird nur ein Feld angezeigt

Wenn Sie einen seiner Werte drücken, werden neue Ergebnisse mit ausgewählten Feldern (für die aktuelle Zeile) geöffnet.


4.4.2. Kopieren (+/- Links)

Hinzufügen / Entfernen einer Registerkarte mit dem eingestellten Namen Tab Feld. Es werden nur Felder verwendet, die in derselben Zeile der Tabelle ausgewählt sind.


4.4.3. Tabellenzellen-Links

Durch Drücken eines anderen Feldnamens wird die Datenvisualisierung des ausgewählten Felds für die ausgewählte Zeile gestartet.


4.5. Datenreihenfolge


Die Reihenfolge der angezeigten Felder entspricht jedoch der Reihenfolge in Feldform tm Feld wird immer an das Ende des Textes gesendet). Diese Reihenfolge kann nur durch direkte Bearbeitung von URL-Parametern (Feldbestellungsteil) geändert werden.


4.6. Beispiel

Zum Beispiel: Einstellen der Registerkarte mit Nachverfolgung von Gütern Name und enthält Karte mit Zeit und Geschwindigkeit auf der Karte

Alle Beschreibungen beziehen sich auf Zeile wo "Map" Text ist in "Lauf" Säule.

  1. Name eingeben "Nachverfolgung von Gütern" im Tab Feld (ohne Anführungszeichen)

  2. Stellen Sie sicher, dass alle Spalten in der Zeile nicht ausgewählt sind

  3. wählen tm, gps_speed_km nur in der Reihe

  4. Drücken Sie + Schaltfläche wo in der Reihe






5. Karten

Karten können über MainForm mit Vorkonfiguration gestartet werden


5.1. Karteninitialisierung

Die Karteninitialisierung wird manuell durchgeführt, wenn sie direkt mit dem Link ausgeführt wird: > http: //%IP%/IoT/maps.php


  1. Der Benutzer sollte alle Felder abwählen (Drücken Sie Abwählen Taste)

  2. Aktivieren Sie ein Kontrollkästchen für angezeigte Felder (z. Ain5 (für Smog Level) und tm (für Messdatum / -zeit)

  3. Drücken Sie "V" Kontrollkästchen zum Ausblenden von Feldern

  4. Drücken Sie Ausführen Schaltfläche zum Ausführen der DB-Abfrage und Anzeigen der aktuellen Informationen aller Sensoren / Geräte

  5. Karte mit Daten wird nach 30 Sekunden oder länger aktualisiert.


5.2. Optionale Einstellungen für die Abfrage

Einstellungen von links nach rechts beschrieben (siehe Screenshot oben).

5.2.1. Ändern Sie die MAP-Skala (Zoomstufe).

  1. Die Zoomstufe kann mithilfe der Schaltflächen (+/-) für die Skalierung (aktuelle_Skala * 2 bzw. aktuelle_Skala / 2) geändert werden. Durch Drücken einer dieser Tasten wird die Skalierung automatisch geändert.

  2. Eine andere Möglichkeit ist die Auswahl der Zoomstufe Zoomen Kombinationsfeld und drücken Sie Ausführen Taste. In diesem Fall wird die gesamte Ansicht / Karte neu geladen und aktualisiert (dauert eine Weile während der Initialisierung).

5.2.2. IMEI (Gerätefeld auswählen)

IMEIDas Feld enthält eine eindeutige Geräte-ID oder einen eindeutigen Alias ​​für ein Gerät. Die Standardeinstellung ist * (Sternchen), das die neuesten Werte und die Geolokalisierung für jedes Gerät anzeigt.

Wenn Sie IMEI auf einen anderen Wert einstellen, werden die Verlaufsdaten des ausgewählten Geräts angezeigt. Es ist nur für mobile und sich bewegende Sensoren sinnvoll, da sich die Ergebnisse auf der Karte an derselben Position überlappen.


5.2.3. Lon, Lat (Längen- und Breitengradkoordinatenfelder)

Stellen Sie die Mittelposition der Karte ein. Dieses Feld wird auf die Cursorposition gesetzt, wenn die Maustaste auf der Karte gedrückt wird.


5.2.4. MAP-Stil ändern (Thema)

Kartenstil / -thema kann ausgewählt werden Map ComboBox-Feld (z. Dunkel, Grau, Topografisch).

Verschiedene Kartenthemen haben möglicherweise unterschiedliche maximale Zoomstufen, sodass möglicherweise das richtige Thema erzwungen wird, um den Kartenmaßstab zu erhöhen.


5.2.5. WO-Klausel

Wobei Klausel für zusätzliche Abfragezeichenfolge {WHERE-Teil} für MySQL / MariaDB verwendet wird.

Diese Klausel wird berücksichtigt, um eine vollständige QUERY-Zeichenfolge für das Datenbankergebnis zu erstellen. Es kann Daten, Zeit und andere Werte begrenzen, indem die Anzahl der Ergebnisse begrenzt wird. In diesem Feld müssen die ursprünglichen Feldnamen der Tabelle (kein Alias) verwendet werden. Z.B.

  1. gps_speed_km> 10 // Geschwindigkeit ist mehr als 10 km / h

  2. ain5> 3 // ain5 ist größer als 3 (mit einer Partikelanzahl von 2,5 um - Smog-Level)

  3. gps_speed_km> 10 und ain6> 5 // Geschwindigkeit ist mehr als 10 km / h und ain6 ist größer als 5 (10um Partikelanzahl - Smog-Level)


5.2.6. Ausführen (Schaltfläche "Abfrage ausführen")

Das Drücken dieser Taste ist erforderlich, um Einstellungen und Parameter zu ändern (außer Drücken +/- Tasten).

Die Karte wird von Anfang an mit neuen Voreinstellungen geladen.

Die Karte wird überhaupt nicht geladen, wenn für die aktuelle Abfrage keine Daten verfügbar sind.

5.2.7. Alle abwählen (Alle Felder aus der Abfrage entfernen)

Nach dem Drücken dieser Taste muss mindestens ein Feld manuell ausgewählt werden, um die Ergebnisse auf der Karte anzuzeigen.


5.2.8. "V" Kontrollkästchen (Feldformular öffnen / schließen)

Dieses Kontrollkästchen wird verwendet, um die Auswahl der anzuzeigenden Felder anzuzeigen / auszublenden.


5.2.9. "X" Kontrollkästchen (Abfrageformular ein- / ausblenden)

Dieses Kontrollkästchen aktiviert das Ausblenden des gesamten Formulars mit Ausnahme von ( +/- Tasten)


Die Ergebnisse auf der Karte werden ständig aktualisiert und mit neuen Werten aktualisiert

5.3. Beispiel

ZB Smog-Ergebnisse (Sensor im Auto installiert): Smog-Partikel 2,5 um (Ain5), Geschwindigkeit (gps_speed_km), Datum / Uhrzeit (tm), Karte (2 - topografisch), Zoomstufe 16,

Where-Klausel:

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

// GPS = gültige 3D-Ergebnisse & Datum = 2019-02-18 & Geschwindigkeit> 0 km / h



6. Ergebnisse in der Tabelle anzeigen

Ergebnisse in der Tabelle anzeigen.

Auf "Hauptform" Drücken Sie "Tabelle" Element, nachdem Sie einige Felder ausgewählt haben, um die vorkonfigurierte Tabelle anzuzeigen




6.1. Initialisierung der Tabelle

Wenn die Tabelle über den Link geöffnet ist http: //%IP%/IoT/que.php? func = tabs Es erfordert eine vorherige Initialisierung der Einstellungen.

Sie können sichtbare Felder auswählen (durch Drücken von "Sichtbare Felder" ) Kontrollkästchen.



  1. Aktivieren Sie alle erforderlichen Kontrollkästchen für angezeigte Felder

  2. Drücken Sie das Kontrollkästchen "Sichtbare Felder" Felder ausblenden

  3. Klicken Sie auf die Schaltfläche Ausführen, um die DB-Abfrage auszuführen und die Tabelle anzuzeigen


6.2. Optionale Einstellungen für die Abfrage

Die Einstellungen werden von links nach rechts beschrieben (auf dem Screenshot).

6.2.1. Sortieren - Feld sortieren und aufsteigend / absteigend sortieren

Das Sortierfeld entspricht dem Drücken der Spaltenüberschrift.

6.2.2. DB / IMEI - Wählen Sie Gerät

IMEIDas Feld enthält eine eindeutige Geräte-ID oder einen eindeutigen Alias ​​für ein Gerät. Bei leerem Wert wird die Tabelle der neuesten Werte angezeigt.

Wenn Sie IMEI auf einen anderen Wert einstellen, werden die Verlaufsdaten des ausgewählten Geräts angezeigt.


6.2.3. CSS - Stil auswählen (Visualisierungsthema)

6.2.4. Sichtbare Felder - Felder anzeigen / ausblenden

6.2.5. Leer entfernen - Zeigen Sie keine leeren Spalten an

6.2.6. "X" Kontrollkästchen (Abfrageformular ein- / ausblenden)

6.2.7. Wo Klausel (zur Datenbeschränkung)

Dies ist ein Sufix für die zusätzliche MySQL / MariaDB-Abfragezeichenfolge {WHERE-Teil}

Diese Klausel wird berücksichtigt, um eine vollständige QUERY-Zeichenfolge für das Datenbankergebnis zu erstellen. Es kann Daten, Zeit und andere Werte begrenzen, indem die Anzahl der Ergebnisse begrenzt wird. In diesem Feld müssen die ursprünglichen Feldnamen der Tabelle (kein Alias) verwendet werden. Z.B.

  1. gps_speed_km> 10 // Geschwindigkeit ist mehr als 10 km / h

  2. ain5> 3 // ain5 ist größer als 3 (mit einer Partikelanzahl von 2,5 um - Smog-Level)

  3. gps_speed_km> 10 und ain6> 5 // Geschwindigkeit ist mehr als 10 km / h und ain6 ist größer als 5 (10um Partikelanzahl - Smog-Level)


6.2.8. Wählen Sie Core Schaltfläche (Häufigste Felder aktivieren)


6.2.9. Alle abwählen Schaltfläche (Alle Felder aus der Abfrage entfernen)

Nach dem Drücken dieser Taste muss mindestens ein Feld manuell ausgewählt werden, um die Ergebnisse auf der Karte anzuzeigen.


6.2.10. Ausführen (Schaltfläche "Abfrage ausführen")

Das Drücken dieser Taste ist erforderlich, um Einstellungen und Parameter zu ändern (außer Drücken +/- Tasten).

Die Tabelle wird von Anfang an mit neuen Voreinstellungen neu geladen.



6.2.11. "V" Kontrollkästchen (Feldformular öffnen / schließen)

Dieses Kontrollkästchen wird verwendet, um die Auswahl der anzuzeigenden Felder anzuzeigen / auszublenden.



Die Ergebnisse in der Tabelle sind nach sortiert Sortieren Feldeinstellung. Die Sortierreihenfolge kann durch Drücken der Zeilenkopfzeile geändert werden (einmal für eine Richtung zweimal für eine andere Richtung).

Einige Ergebnisse in Spalten sind mit weiteren Visualisierungsbildschirmen verknüpft (fest codiert).


Bei der Anzeige von Verlaufsdaten für Geräte sollte diese eingeschränkt werden, um nicht die gesamten Verlaufsinformationen anzuzeigen, da dies zu Leistungsproblemen oder Speicherproblemen führen kann.


7. Balkendiagramme.

Balkendiagramme sollten vom Hauptformular aus ausgeführt werden, indem Sie auf ein einzelnes Feld in der Zeile "Balken" klicken.

Es werden sortierte Balken angezeigt, die auf den Maximalwert normalisiert sind und von der höchsten zur niedrigsten Ordnung zeigen.

Es ist nützlich, um extreme Ergebnisse schnell zu überprüfen und einige Maßnahmen zu ergreifen.





Das Mouse Over-Ereignis zeigt zusätzliche Informationen für das Gerät an.


8. Historische Diagramme.

Verlaufsdiagramme können von der Hauptform aus gestartet werden, wenn Sie auf die ausgewählte Spalte in der Zeile "Verlauf" klicken (für ein einzelnes Feld).

Für mehrere Felder in der Zeile "Verlauf" müssen die gewünschten Felder aktiviert und der Link "Verlauf" in der Spalte "Ausführen" gedrückt werden.

Historische Ergebnisse sind auf die letzten 24 Stunden + die nächsten 24 Stunden (für eventuelle Aktualisierungen der Diagramme) beschränkt, wenn keine Grenzwerte festgelegt wurden.

8.1. Initialisierung historischer Diagramme


Historische Diagramme, die über den Hauptlink geöffnet werden, müssen wie andere Ergebnisse initialisiert werden, wenn sie über den Link ohne Voreinstellungsparameter geöffnet werden.

Es können mehrere Felder ausgewählt werden, um verschiedene Elemente anzuzeigen. Sie kann auch im Feldfilterformular festgelegt werden.




  1. Aktivieren Sie alle erforderlichen Kontrollkästchen für angezeigte Felder

  2. Drücken Sie das Kontrollkästchen "Sichtbare Felder" Felder ausblenden

  3. Klicken Sie auf die Schaltfläche Ausführen, um die DB-Abfrage auszuführen und die Tabelle anzuzeigen


8.2. Optionale Einstellungen für historische Diagramme

Von oben und von links nach rechts beschriebene Elemente (auf dem Screenshot).

8.2.1. IMEI - (Gerät auswählen, um historische Daten anzuzeigen)

IMEIDas Feld enthält eine eindeutige Geräte-ID oder einen eindeutigen Alias ​​für ein Gerät. Mit dem Wert * (Sternchen) wird eine Tabelle der neuesten Werte angezeigt, die keinen Sinn hat.

Wenn Sie IMEI auf einen anderen Wert einstellen, werden die Verlaufsdaten des ausgewählten Geräts angezeigt.

8.2.2. Mindest - Grenzwert des ersten Feldes begrenzen

8.2.3. Max - Maximalwert des ersten Feldes begrenzen

8.2.4. "V" - Felder anzeigen / ausblenden

8.2.5. Von: minimales Datum / Uhrzeit einstellen (*)

8.2.6. Zu: maximales Datum Datum / Uhrzeit einstellen (*)

8.2.7. "X" Kontrollkästchen (Abfrageformular ein- / ausblenden)

8.2.8. "Wo" Klausel

Klausel zur Einschränkung der Datenergebnisse Zusätzliche MySQL / MariaDB-Abfragezeichenfolge {WHERE-Teil}.

Diese Klausel wird berücksichtigt, um eine vollständige QUERY-Zeichenfolge für das Datenbankergebnis zu erstellen. Es kann Daten, Zeit und andere Werte begrenzen, indem die Anzahl der Ergebnisse begrenzt wird. In diesem Feld müssen die ursprünglichen Tabellenfeldnamen (kein Alias) und eine gültige SQL-Syntax verwendet werden. Z.B.

  1. gps_speed_km> 10 // Geschwindigkeit ist mehr als 10 km / h

  2. ain5> 3 // ain5 ist größer als 3 (mit einer Partikelanzahl von 2,5 um - Smog-Level)

  3. gps_speed_km> 10 und ain6> 5 // Geschwindigkeit ist mehr als 10 km / h und ain6 ist größer als 5 (10um Partikelanzahl - Smog-Level)


8.2.9. Alle abwählen Schaltfläche (Alle Felder aus der Abfrage entfernen)

Nach dem Drücken dieser Taste muss mindestens ein Feld manuell ausgewählt werden, um historische Ergebnisse anzuzeigen.


8.2.10. Ausführen (Schaltfläche "Abfrage ausführen")

Das Drücken dieser Taste ist erforderlich, um Einstellungen und Parameter zu ändern (außer das Anzeigen von Feldern oder des Abfragefelds). Die Tabelle wird von Anfang an mit neuen Voreinstellungen neu geladen.

8.2.11. "V" Kontrollkästchen (Feldformular öffnen / schließen)

Dieses Kontrollkästchen wird verwendet, um die Auswahl der anzuzeigenden Felder anzuzeigen / auszublenden.


8.3. Riegel Variante: (zeigt nur verfügbare Daten an)



8.4. Kontinuierlich Variante (mit den gleichen Daten):



Mauszeiger zeigt Werte von Messungen und Datum / Uhrzeit an.

9. Webbrowser-Kompatibilität


Funktions- / WWW-Browser

Chrome 72

FireFox 65

Kante

Oper 58

Karten

+

+

+

+

Historisch

+

+ (*)

+

+

Riegel

+

+

+

+

Tabs

+

+

+

+


* - Firefox unterstützt keine Datums- / Zeitauswahl (das Textfeld muss manuell mit dem richtigen Datums- und Uhrzeitformat bearbeitet werden).

Internet Explorer wird nicht unterstützt (Verwendung Kante stattdessen)

Andere Webbrowser wurden nicht getestet.



10. Themenanpassung

Webseiten basieren auf der allgemeinen Vorlagendatei unter "Vorlagen" Verzeichnis "* .template".

Zusätzlich enthält jeder Seitentyp:

  1. "* .head" -Datei, in der der Header der Seite gespeichert wird (Links, importiertes CSS, JavaScript Dateien usw.). )

  2. "* .foot" -Dateien, in denen die Fußzeile der Seite (Links usw.) gespeichert ist. )


Das Visualisierungsthema kann gemäß den Benutzereinstellungen geändert werden, indem CSS-Dateien kopiert und geändert werden. CSS-Dateien befinden sich in "templates / css" Verzeichnis. Verschiedene Webseitenthemen können verwendet werden, um z. Drucken, SmartPhones, PADs Vorlagen.


Table Ansichten - haben ein auswählbares Feld zur Auswahl der CSS-Datei für die vollständige Änderung des Themas (gespeichert in "templates / css / tabs" Verzeichnis).




Map Ansichten - Das allgemeine Thema wird ausgewählt von "Karte" Typ Kombinationsfeld. Zusätzlich gibt es eine Standard-CSS-Datei "templates / css / map.css" Dies enthält einige zusätzliche Funktionen wie das Ausblenden / Färben von Ergebnissen basierend auf ihren Werten. Der Rest dieser CSS-Datei ist praktisch auf Abfrage- und Feldformulare beschränkt.


Die meisten von @ City Platform PHP-Dateien zur Visualisierung akzeptieren CSSParameter mit dem Wert des Dateinamens für das Thema (ohne Erweiterung). Die Datei muss sich im Verzeichnis "templates / css" befinden und der Name unterscheidet zwischen Groß- und Kleinschreibung.


Einige Elemente der Themenanzeige befinden sich direkt in der Datei JavaScript in "template / js" Verzeichnis.

Main @Stadt Skript"@ City.js" befindet sich im oberen Verzeichnis. Hier besteht keine Änderungsmöglichkeit Speicherort, jedoch kann das Skript kopiert werden "templates / js" Verzeichnis und dort geändert. Die Verwendung eines einzelnen Skripts erfordert die Aktualisierung aller Header-Dateien.

11. Aktualisierung der Algorithmen


Einige einzigartige Sensoren erfordern möglicherweise spezielle Berechnungsfunktionen.

Es gibt keine Möglichkeit, mehrere Varianten von zu aktualisieren und zu warten @ City Server Software, Front-End-PHP-Schnittstelle, was viele Probleme, Versionen, Fehler verursachen würde.

Der beste und einfachste Weg, dies zu erreichen, besteht darin, over "Overlay" -Dateien zu aktualisieren, um den Wert / die Beschreibung korrekt anzuzeigen.

Ursprüngliche JS-Skripte sind offene Textdateien und können an die Kundenbedürfnisse angepasst werden. Wie im vorherigen Kapitel angegeben, müssen sie kopiert werden "templates / js" Verzeichnis, in dem der Kunde Zugriffsrechte zur Änderung hat.


Technischer Aspekt bei der Programmierung von @Stadt Das System ist nicht Gegenstand dieses Dokuments. Webentwickler mit Grundkenntnissen in HTML und JS können jedoch die Front-End-Webanwendung an die individuellen Kundenanforderungen anpassen.


12. Datenbankstruktur


@ City-Datenbank mit einem Namen "IoT" oder "* IoT" ist in Tabellen unterteilt (wobei Asterix je nach Hosting-Server ein Präfix ist - falls erforderlich). Die Datenbank kann in PHPAdmin (Webanwendung) unter Link beobachtet werden http: //% IP% / phpmyadmin




Für jedes Gerät festgelegte Tabellen (wo * {asterix} ist IMEI-Adresse - eindeutige ID):

Andere Tabellen:



12.1. Tabellenstruktur "ithings_" und "*"

12.2. Warteschlange "* _c" der Gerätebefehle (Ereignisse) - Struktur


Diese Tabelle ist eine Ereignis- / Befehlswarteschlange für jedes Gerät und hat folgende Struktur:



12.3. Zugriff auf Ergebnisse aus Datenbanken - Mittelstufe (Daten lesen)


Auf Daten kann ohne Front-End-Webanwendung zugegriffen werden. Das @ City-System enthält ein Skript mit Funktionen auf mittlerer Ebene. Die Ergebnisse werden im JSON-Format zurückgegeben.


12.3.1. Erhalten Sie den aktuellen Status aller Geräte

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


Die Abfrage wird als Ganzes zurückgegeben "_ithings" Tabelle (aktueller Status aller Geräte) im JSON-Format:

[{ "Land":"", "Stadt":"", "Kontinent":"", "Land":"", "Region":"", "Subregion":"", "Subsubregion":"", "Stadt":"", "Kreis":"", "Straße":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "Schaffung":"2019-02-09 18:12:38", "letzte":"0000-00-00 00:00:00", "Veranstaltungen":"", "Benutzer":"", "bestehen":"", "imei":"351580051067110", "sn":"", "Status":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb30", "Hash-Code":"", "addr":"", "fwnr":"", "deaktiviert":"", "gsm_nr":"", "Verkäufer":"", "Zeitzone":"", "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":"", "Veranstaltungen":"", "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", "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", "Text 1":"", "text2":"", "text3":"", "text4":"", "text5":"", "text6":"" }]

12.3.2. Abrufen historischer Daten für das Gerät

Abfrage historischer Daten eines einzelnen Geräts nach IMEI nr:

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


Da die gesamte Tabelle möglicherweise Millionen von Zeilen enthält, sollte sie mit der WHERE-Klausel eingeschränkt werden, um den Server nicht aufzulegen.

Zusätzliche Parameter URL-Parameter:

func - Imeijson

imei - IMEI des Geräts

Feld - Felder, die in den Ergebnissen angezeigt werden sollen (durch Koma getrennte Liste)

Mindest - Mindestwert für das erste Feld aus der Liste

max - Maximalwert für das erste Feld aus der Liste

sodert - Feld zum Sortieren

tm - Feld wird automatisch zu den Ergebnissen hinzugefügt.

where - where-Klausel zum Beschränken von Daten


Beispiel:

Wir wollen folgendes Ergebnis erzielen

für Gerät mit imei=356345080018095

Felder anzeigen: ain5, ain6, gps_lat, gps_long

und begrenzen ain5 im Bereich ( 1, 10000 ) - muss das erste Feld in der Liste sein

und Geographisches Positionierungs System gültige Daten haben (gps_fix = 3)

und Datum / Uhrzeit (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00


Konstruierte URL-Zeichenfolge:

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


Abfrageergebnisse:

[{ "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. Liste der Geräte abrufen - einzelnes Feld aus aktuellen Status mit Einschränkung

Diese Funktion gibt begrenzte Daten aus der Tabelle "_ithings" zurück


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



Parameter:

func - fieldjson

Feld - Feld, das in den Ergebnissen angezeigt werden soll - imei und tm werden automatisch hinzugefügt

Mindest - Mindestwert für das Feld

max - Maximalwert für das Feld


Für die obige Abfragezeichenfolge wird zurückgegeben Ergebnisse von ain5, imei, tm Felder:

wenn ain5 ist in Reichweite (13.5000)


Abfrageergebnisse:

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