@City IoT Plateforme Cloud
iSys - Systèmes intelligents IoT Solutions
Systèmes IoE
Table des matières
1. Introduction. 5
1.1 Types d'appareils pris en charge. 5
1.2. Types de produits pris en charge. 5
1.3. Protocoles de communication pris en charge 5
1.4. Technologie de communication prise en charge des appareils 6
1.5. @City Cloud Server 6
1.5.1. Passerelles de serveur et de communication 7
1.5.2 Intégration HTTP LoRaWAN 7
1.5.3. Interface frontale 8
1.5.3. Droits d'accès au serveur 8
1.6. Appareils intelligents 9
1.6.1. CIoT - Appareils GSM 9
1.6.3. BAS, BMS, IoT - Périphériques Ethernet et WiFi 9
1.6.2. IoT -Périphériques LoRaWAN 9
1.7. Options interentreprises (B2B) 9
2. @City IoT Fonctionnalité de la plateforme 10
3. Page principale 11
4. Formulaire principal 11
4.1. En-tête 12
4.1.1. Lien Accueil - (ouvre le tableau des résultats réels) 12
4.1.2. Case à cocher «X» - ouvre / ferme le formulaire de requête 12
4.1.3. Case à cocher "V" - ouvre / ferme les champs Formulaire 12
4.1.4. Icônes graphiques - liens vers les résultats de visualisation (modifiables) 12
4.2. Forme: 12
4.2.1. Case à cocher «X» - ouvre / ferme l'ensemble du formulaire de requête 12
4.2.2. CSS - Sélectionnez le thème de visualisation 12
4.2.3. Case à cocher Champs visibles - affiche / masque la liste des filtres de champ 12
4.2.4. Onglet: Nom de l'onglet à ajouter ou supprimer 12
4.2.5. Ajouter / supprimer des boutons - Ajouter ou supprimer des onglets avec le nom dans le champ Onglet 12
4.2.6. Sélectionnez le bouton principal 12
4.2.7. Bouton Désélectionner tout 12
4.2.7. Bouton Sélectionner tout 12
4.2.8. Masquer le filtre - Masquer tout le formulaire 12
4.2.9. Bouton Exécuter - Modifier les paramètres des paramètres 13
4.2.10. Case à cocher "V" - afficher / champs de filtre élevé. 13
4.3. Onglets 13
4.4. Contenu de la table 13
4.4.1. Exécuter - affiche le type de résultat 13
4.4.2. Copie (+/- liens) 13
4.4.3. Liens entre les cellules du tableau 13
4.5. Ordre des données 13
4.6. Exemple 13
5. Cartes 15
5.1. Initialisation de la carte 15
5.2. Paramètres facultatifs pour la requête 15
5.2.1. Modifier l'échelle de la carte (niveau de zoom) 16
5.2.2. IMEI (Sélectionner le champ de l'appareil) 16
5.2.3. Lon, Lat (champs de coordonnées Longitude, Latitude) 16
5.2.4. Modifier le style de la MAP (thème) 16
5.2.5. WHERE Clause 16
5.2.6. Exécuter (bouton Exécuter la requête) 16
5.2.7. Tout désélectionner (supprimer tous les champs de la requête) 17
5.2.8. Case à cocher «V» (formulaire Ouvrir / Fermer le champ) 17
5.2.9. Case à cocher «X» (Afficher / Masquer le formulaire de requête) 17
5.3. Exemple 17
6. Afficher les résultats dans le tableau 18
6.1. Initialisation du tableau 18
6.2. Paramètres facultatifs pour la requête 19
6.2.1. Trier - trier le champ et l'ordre croissant / décroissant 19
6.2.2. DB / IMEI - Sélectionnez le périphérique 19
6.2.3. CSS - sélectionnez le style (thème de visualisation) 20
6.2.4. Champs visibles - Afficher / masquer les champs du formulaire 20
6.2.5. Supprimer le vide - Ne pas afficher les colonnes vides 20
6.2.6. Case à cocher "X" (Afficher / Masquer le formulaire de requête) 20
6.2.7. Clause Where (pour la limitation des données) 20
6.2.8. Sélectionner le bouton principal (activer les champs les plus courants) 20
6.2.9. Bouton Désélectionner tout (supprimer tous les champs de la requête) 20
6.2.10. Exécuter (bouton Exécuter la requête) 20
6.2.11. Case à cocher «V» (formulaire d'ouverture / fermeture de champ) 20
7. Diagramme à barres. 21
8. Graphiques historiques. 22
8.1. Initialisation des graphiques historiques 22
8.2. Paramètres facultatifs des graphiques historiques 23
8.2.1. IMEI - (Sélectionnez l'appareil pour afficher les données historiques) 23
8.2.2. Min - valeur minimale limite du premier champ 23
8.2.3. Max - valeur maximale limite du premier champ 23
8.2.4. "V" - Afficher / masquer les champs du formulaire 23
8.2.5. De: régler la date / heure minimale (*) 23
8.2.6. À: régler la date / heure maximale (*) 23
8.2.7. Case à cocher «X» (Afficher / Masquer le formulaire de requête) 23
8.2.8. "Où" Article 23
8.2.9. Bouton Désélectionner tout (supprimer tous les champs de la requête) 23
8.2.10. Exécuter (bouton Exécuter la requête) 23
8.2.11. Case à cocher «V» (formulaire Ouvrir / Fermer le champ) 24
8.3. Variante de barres: (affiche uniquement les données disponibles) 24
8.4. Variante continue (avec les mêmes données): 24
9. Compatibilité du navigateur Web 25
dix. Personnalisation des thèmes 26
11. Mise à jour des algorithmes 27
12. Structure de la base de données 28
12.1. Structure des tables "ithings_" et "*" 29
12.2. Table "* _c" de la file d'attente des commandes de périphérique (événements) - structure 30
12.3. Accès aux résultats à partir de bases de données - Niveau intermédiaire (lecture des données) 30
12.3.1. Obtenir les statuts actuels de tous les appareils 30
12.3.2. Obtenir des données historiques pour l'appareil 31
12.3.3. Obtenir la liste des appareils - champ unique à partir des états actuels avec limitation 32
@City IoT Cloud Platform est dédié "micro-cloud" système pour les clients individuels. La plateforme n'est pas partageable et un seul client a accès au serveur physique ou virtuel (VPS ou serveurs dédiés). Le client peut sélectionner l'un des dizaines de centres de données en Europe ou dans le monde.
La plateforme @City IoT est dédiée au suivi des produits iSys.PL
IoT - RF / LoRaWAN (Internet des objets)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Internet des objets cellulaire)
Wifi
Ethernet
@City (eCity) Cloud IoT Platform est un système de différentes tailles pour les produits IP IoT (appelés ensemble comme Matériel @City ou alors Appareils CioT ):
@Ville
@Lumière
@Mesure
@Trace
@AirQ
@Poubelle
La plateforme @City IoT prend en charge les protocoles de communication suivants:
UDP - suggéré pour les capteurs / appareils CIoT (en particulier NBIoT) - utilisation des données la plus faible
TCPIP - suggéré pour les appareils avec communication bidirectionnelle - établissement de liaison / confirmation
HTTP - suggéré uniquement pour l'accès aux données / la visualisation / l'exportation / "nuage à nuage"
Webhooks HTTP - pour la communication LoRaWAN entre LoRaWAN Network / Application Server et @City Cloud.
Les données envoyées du contrôleur au serveur cloud et vice-versa sont cryptées dans un format binaire unique pour une taille de données plus faible et une sécurité accrue. Chaque partenaire obtient sa propre clé de cryptage unique pour l'autorisation de l'appareil, la vérification de la validité des données, etc.
Pour les appareils non eHouse / eCity, nous pouvons fournir des algorithmes de chiffrement individuels ( "C" code source) pour chaque partenaire pour que le microprocesseur protège les données avant la communication.
Dans ce cas, les données sont totalement sécurisées lors de la communication bidirectionnelle sur les supports de communication publics (Internet, Air, etc. ).
La plateforme @City IoT prend en charge:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - appareils (communication UDP / TCPIP)
Appareils LoRaWAN (Webhooks HTTP) - via la passerelle LoRaWAN et les serveurs de réseau / d'applications LoRaWAN
Contrôleurs Ethernet (communication UDP / TCP)
Contrôleurs WiFi (communication UDP / TCP)
Futurs produits IP
Produits non IP via une passerelle matérielle locale supplémentaire @ City / eHouse.
La plateforme @City IoT est dédiée aux appareils / nœuds:
Produits natifs iSys:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - produits dédiés pour @City Platform
Ethernet - produits dédiés pour @City Platform
Produits de coproduction (fabriqués par des tiers sous licence iSys et marque externe)
Produits de franchise (fabriqués par des tiers sous licence iSys avec les logos iSys)
Le logiciel @City fonctionne sur un VPS (serveur privé virtuel) basé sur Linux ou un serveur dédié côté Internet, en fonction des performances demandées du Serveur (appelé plus tard Serveur):
accès privé / public
nombre total d'appareils
mise à jour de la fréquence d'état des appareils
taux de rafraîchissement des données
Plusieurs variantes de VPS existent selon:
Prix
géolocalisation du centre de données
Cœurs de processeur virtuel (1-8)
RAM virtuelle (1 à 32 Go)
Disque SSD (20 Go-1 To)
Des dizaines de serveurs dédiés existent en fonction de:
Prix
géolocalisation du centre de données
Cœurs de processeur (4 .. 32)
RAM (16 .. 512 Go)
SSD / HDD (256 Go. 8 To)
La plateforme @City IoT est dédiée au client unique:
gouvernements locaux et autorités (ville, communauté, pays)
B2B (pour propriétaire tiers)
Comme ce serveur ne peut pas être partagé entre les clients, il simplifie l'accès à la sécurité et les problèmes de performances. Pour cette raison, seul le client est responsable de la sécurité, de la stabilité, de l'efficacité, du débit de données, etc. En cas de performances insuffisantes, le client peut acheter un plan plus élevé (VPS ou serveur dédié), plus optimal que les fonctionnalités et les performances attendues.
Dans des cas particuliers "Cloud to cloud" la communication pourrait être mise en œuvre pour la mondialisation et la centralisation des données vers des zones plus vastes au lieu d'un cloud multi-clients.
La communication de @City Server est réalisée sur la base d'une application de bas niveau pour la maximisation des performances.
Les principales fonctionnalités de l'application @City Server sont:
recevoir de manière asynchrone les données des appareils (via les protocoles: UDP, TCP IP, HTTP)
minimiser l'utilisation des données et ses coûts entre les appareils et le Cloud (en utilisant des protocoles de communication de bas niveau UDP, TCP IP)
recevoir l'état crypté des appareils (via n'importe quel support de communication)
autorisation et validation des données des appareils en déchiffrant leurs statuts
décoder l'état des appareils et le mettre à jour directement dans les tables MariaDB / MySQL (au format de données brutes)
table de données actuelle (contient uniquement l'état le plus récent de chaque appareil)
table de données historiques (contient tous les statuts d'un seul appareil)
envoyer des commandes en attente (événements) aux appareils
assurer la prise de contact, la vérification et les confirmations
Le logiciel @City Server est le même pour chaque utilisateur et ne peut pas être personnalisé pour différents clients.
Les contrôleurs LoRaWAN sont intégrés au cloud @City via l'interface HTTP (webhooks) disponible sur le réseau / serveur d'applications LoRaWAN.
Plusieurs types de réseau / serveur d'applications sont pris en charge:
TTN (temps limité "En direct" et le nombre maximum de commandes envoyées au pilote et ne prennent pas en charge la mise à niveau du micrologiciel)
LoraWAN-Stack (nécessite un hébergement sur un appareil physique avec accès à Internet).
LoraServer.Io (nécessite un hébergement sur un appareil physique avec accès Internet - envoi uniquement des données au serveur et ne prend pas en charge la mise à niveau du micrologiciel)
Le @City Cloud pour les contrôleurs LoRaWAN est divisé de la même manière que pour les autres interfaces. Il est discuté dans le chapitre précédent.
L'interface front-end est réalisée avec des scripts PHP pour extraire des données personnalisées de @City Cloud Database. Il utilise un mécanisme de recherche très élastique, basé sur des requêtes SQL originales pour limiter les données souhaitées. L'interface fournit les résultats des requêtes au format JSON pour un décodage et un traitement ultérieurs par JavaScript "application" Web frontale.
L'interface frontale d'origine est la même pour chaque utilisateur et ne peut pas être personnalisée pour différents clients.
L'interface de superposition peut être créée par notre personnel ou en coopération pour assurer la personnalisation pour le client.
Les droits d'accès du client (au serveur physique) sont limités.
Accès aux fichiers pour le répertoire "templates" uniquement (fichiers texte natifs - .txt, .js, .css, .html):
ajout, suppression, modification de fichiers HTML purs (développement d'interface / interface graphique frontale)
ajout, suppression, modification de fichiers JavaScript purs (interface graphique / développement d'interface et algorithmes)
ajouter, supprimer, modifier des fichiers CSS purs (Front-End - Vues / thèmes personnalisés)
ajout, suppression, modification de fichiers texte de modèles (interface graphique frontale)
ajouter, supprimer, modifier des onglets, des raccourcis, des liens vers des résultats de données
Autres droits d'accès:
Accès complet à @City Cloud Database MySQL / MariaDB où toutes les données des appareils sont stockées
L'accès aux services Web est défini (informations d'identification) pour le client.
Le client n'est pas autorisé à transmettre ses informations d'identification à des tiers (l'accès multiple aux résultats peut affecter les performances, la stabilité et la sécurité de l'ensemble du système)
Dans des circonstances particulières et lors de l'utilisation d'un serveur dédié hautes performances, un compte public peut être configuré pour observer la plupart des données actuelles (non historiques).
L'utilisateur peut dupliquer les données sur son propre serveur MySQL et effectuer ses propres analyses et traitements de données, afin de ne pas affecter les performances de @City Server
iSys - le personnel d'Intelligent Systems - a un accès illimité à l'ensemble du serveur, y compris le compte root et l'accès complet à la base de données pour la maintenance.
Dans certaines circonstances, iSys peut accorder des droits supplémentaires limités au client (scripts PHP, fichiers) après vérification du code source, exécution de tests, si cela n'affecte pas la sécurité, la stabilité et les performances globales du système.
Nos appareils contiennent un microcontrôleur et un module GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) pour la communication. Le microcontrôleur contient un chargeur de démarrage chiffré pour une mise à niveau sécurisée du micrologiciel OTA. Cela permet de créer de nombreuses variantes de système basées sur le même "Appareil CIoT Smart".
Les contrôleurs Ethernet et WiFi permettent une communication basée sur IP avec le système (sans frais pour le transfert de données vers l'opérateur GSM). Ces appareils ont également un chargeur de démarrage chiffré et les appareils peuvent être mis à jour via son interface native. Pour le WiFi, il dispose d'une mise à niveau du micrologiciel OTA à partir du serveur principal
LoRaWAN permet la transmission de données sur de très longues distances (jusqu'à env. 15 km). Cette portée dépend de la vitesse de transmission des données, de la quantité de données, de l'urbanisation de la zone et de l'efficacité des trajets radio des appareils.
Nos appareils comprennent un microcontrôleur et un module LoRaWAN pour la communication. Le microcontrôleur contient un chargeur de démarrage chiffré pour une mise à jour sécurisée du logiciel OTA. Cela vous permet de créer plusieurs variantes de système basées sur le même "IoT smart device". Les appareils fonctionnent dans la bande ouverte ISM sans frais d'abonnement supplémentaires. Il est nécessaire d'utiliser les passerelles LoRaWAN pour couvrir toute la zone avec un accès à Internet. Dans le cas de portes LoRaWAN existantes dans la gamme des appareils (configurées pour le serveur TTN), il est possible d'envoyer des informations à travers elles. La mise à niveau du micrologiciel nécessite son propre serveur LoRaWAN réseau / application et une bonne plage de communication.
Il existe plusieurs options pour les affaires et la coopération:
produits prêts à l'importation / exportation (tableaux, appareils) - produits finis
import / export de produits OEM (PCB, contrôleurs, etc.) - produits intermédiaires, pièces de rechange
franchise - production basée sur notre licence pour les marchés locaux (nous fournissons uniquement des microcontrôleurs programmés) sous iSys - Intelligent Systems Brands
Coproduction - (comme ci-dessus) mais sous des marques externes
La plate-forme @City prend en charge le modèle Front-End personnalisable pour la visualisation, la requête, la limitation et le traitement des données (données actuelles / historiques):
visualiser les données sélectionnées sur la carte (géolocalisation)
affiche les données et les résultats sélectionnés dans les tableaux
affiche les données sélectionnées dans les graphiques à barres
affiche les données sélectionnées dans les graphiques historiques
exporter des données vers des applications tierces et un traitement ultérieur
d'autres fonctionnalités seront mises à jour sur les demandes individuelles.
Le Front-End de l'utilisateur est accessible via une adresse IP statique ou un domaine / sous-domaine / fichier de redirection DNS si disponible.
Installation exemplaire et de démonstration (elle n'est activée que pour les clients potentiels).
Veuillez nous informer lorsque vous souhaitez le tester - pour permettre l'accès public à la plate-forme.
Cela peut nécessiter une adresse IP statique de l'ordinateur distant pour permettre la communication avec la plate-forme @City.
La page principale est laissée vide intentionnellement pour des raisons de sécurité: http: //% YourIP% / IoT /
Il peut être activé et modifié individuellement et contenir des liens vers tous les services disponibles de Plateforme @City IoT si c'est nécessaire
Main Form est destiné à créer de nouveaux préréglages et onglets: http: //%IP%/IoT/que.php
Il s'agit du formulaire initial de création de résultats, de vues et d'onglets pour chaque configuration
Descriptions (de haut en bas et de gauche à droite)
Le fichier CSS de modification du thème de visualisation doit exister dans "modèles / css /" répertoire - répertorié automatiquement.
Sélectionnez les principaux champs visibles sur le tableau. Il Est mis à jour automatiquement.
Désélectionnez tous les champs (doit être suivi en sélectionnant certains d'entre eux manuellement)
Sélectionnez tous les champs (doivent être suivis de désélectionner certains d'entre eux manuellement)
Ceci équivaut à la case à cocher all (X)
Onglets créés individuellement avec des noms et des préréglages (stockés dans cfg / tabs.cfg déposer).
Le fichier contient en fait le nom et l'URL (séparés par un caractère de tabulation).
Affiche tous les champs limités par le filtre de champ.
Champs du tableau:
carte- résultats de la cartographie sur la carte (un ou plusieurs champs peuvent être sélectionnés)
l'histoire - graphiques historiques (un ou plusieurs champs peuvent être sélectionnés)
tab - affiche le tableau (toute combinaison de champs peut être sélectionnée)
bar - un seul champ est affiché sur le graphique à barres
En appuyant sur l'une de ses valeurs, il ouvrira de nouveaux résultats avec les champs sélectionnés (pour la ligne actuelle).
Ajout / suppression d'un onglet avec le nom défini dans Languette domaine. Il n'utilise que les champs sélectionnés dans la même ligne du tableau.
Appuyer sur n'importe quel autre nom de champ lancera la visualisation des données du champ sélectionné pour la ligne sélectionnée.
L'ordre des champs affichés est comme son ordre dans le formulaire des champs (cependant tm est toujours envoyé à la fin du texte). Cet ordre ne peut être modifié qu'avec l'édition directe des paramètres d'URL (partie commande des champs).
Par exemple: Onglet Paramètres avec Suivi des actifs nom et contient la carte avec l'heure et la vitesse sur la carte
Toute la description se référant à la ligne où "Map" le texte est dans "Cours" colonne.
Entrez le nom "Suivi des actifs" dans Languette champ (sans guillemets)
Assurez-vous que toutes les colonnes sont désélectionnées dans la ligne
sélectionner tm, gps_speed_km seulement dans la rangée
presse + bouton où dans la rangée
Les cartes peuvent être lancées à partir de MainForm avec une pré-configuration
L'initialisation de la carte est effectuée manuellement lorsqu'elle est exécutée directement avec le lien: > http: //%IP%/IoT/maps.php
L'utilisateur doit désélectionner tous les champs (appuyez sur Désélectionner Bouton)
Appuyez sur une case à cocher pour les champs affichés (par exemple. Ain5 (pour le niveau de smog) et tm (pour la date / heure de la mesure)
presse "V" case à cocher pour masquer le formulaire des champs
presse Exécuter bouton pour exécuter la requête de base de données et afficher les informations actuelles de tous les capteurs / appareils
La carte avec les données est mise à jour après 30 secondes ou plus.
Paramètres décrits de gauche à droite (sur la capture d'écran ci-dessus).
Le niveau de zoom peut être modifié à l'aide des boutons (+/-) pour l'échelle (current_scale * 2 ou current_scale / 2 respectivement). Appuyez sur l'un de ces boutons pour modifier automatiquement l'échelle.
Une autre méthode consiste à sélectionner le niveau de zoom dans Zoom Champ Combo Box et appuyez sur Exécuter bouton. Dans ce cas, toute la vue / carte est rechargée et actualisée (prend un certain temps lors de l'initialisation).
IMEILe champ contient l'ID unique de l'appareil ou l'alias unique d'un appareil. Le paramètre par défaut est * (astérisque) qui montre les valeurs les plus récentes et la géolocalisation pour chaque appareil.
Si vous définissez IMEI sur une autre valeur, les données historiques de l'appareil sélectionné seront affichées. Cela n'a de sens que pour les capteurs mobiles et mobiles, sinon les résultats se chevaucheront sur la carte à la même position.
Définissez la position centrale de la carte. Ce champ est défini sur la position du curseur lorsque le bouton de la souris est enfoncé sur la carte.
Le style / thème de la carte peut être sélectionné à partir de Map Champ ComboBox (par exemple. Sombre, gris, topographique).
Différents thèmes de carte peuvent avoir des niveaux de zoom maximum différents, ce qui permet d'appliquer le thème approprié pour augmenter l'échelle de la carte.
Where Clause est utilisé pour la chaîne de requête supplémentaire {WHERE part} pour MySQL / MariaDB.
Cette clause est prise en compte pour la construction de la chaîne QUERY complète pour le résultat de la base de données. Il peut limiter les données, le temps et toute autre valeur en limitant le nombre de résultats. Les noms de champ de table d'origine (pas d'alias) doivent être utilisés dans ce champ. Par exemple.
gps_speed_km> 10 // la vitesse est supérieure à 10 km / h
ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)
gps_speed_km> 10 et ain6> 5 // la vitesse est supérieure à 10 km / h et ain6 est supérieure à 5 (avec un nombre de particules de 10um - niveau de smog)
Il est nécessaire d'appuyer sur ce bouton pour modifier les réglages, paramètres (sauf en appuyant sur +/- boutons).
La carte est chargée depuis le début avec de nouveaux préréglages.
La carte n'est pas chargée du tout, lorsqu'aucune donnée n'est disponible pour la requête en cours.
Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats sur la carte.
Cette case à cocher permet d'afficher / masquer le sélecteur de champs à afficher.
Cette case à cocher permet de masquer tout le formulaire sauf ( +/- boutons)
Les résultats sur la carte sont continuellement actualisés et mis à jour avec de nouvelles valeurs
Par exemple, résultats de smog (capteur installé sur la voiture): particules de niveau de smog 2.5um (Ain5), vitesse (gps_speed_km), date / heure (tm), carte (2 - topographique), niveau de zoom 16,
Clause Where:
"gps_fix = 3 et tm> "2019-02-18 00:00:00" et tm <"2019-02-19 00:00:00" et gps_speed_km> 0".
// GPS = résultats 3D valides & date = 18/02/2019 & vitesse> 0 km / h
Afficher les résultats dans le tableau.
Au "Forme principale" presse "tableau" élément, après avoir sélectionné certains champs pour afficher le tableau préconfiguré
Lorsque la table est ouverte à partir du lien http: //%IP%/IoT/que.php? func = tabs il nécessite une initialisation préalable des paramètres.
Vous pouvez sélectionner des champs visibles (en appuyant sur "Champs visibles" ) case à cocher.
Cochez toutes les cases requises pour les champs affichés
Appuyez sur la case à cocher "Champs visibles" pour masquer le formulaire des champs
Appuyez sur le bouton Exécuter pour exécuter la requête DB et afficher la table
Les paramètres sont décrits de gauche à droite (sur la capture d'écran).
Le champ de tri équivaut à appuyer sur l'en-tête de colonne.
IMEILe champ contient l'ID unique de l'appareil ou l'alias unique d'un appareil. Avec une valeur vide, il affiche le tableau des valeurs les plus récentes.
Si vous définissez IMEI sur une autre valeur, les données historiques de l'appareil sélectionné seront affichées.
Ceci est le suffixe pour la chaîne de requête supplémentaire MySQL / MariaDB {WHERE part}
Cette clause est prise en compte pour construire la chaîne QUERY complète pour le résultat de la base de données. Il peut limiter les données, le temps et toute autre valeur en limitant le nombre de résultats. Les noms de champ de table d'origine (pas d'alias) doivent être utilisés dans ce champ. Par exemple.
gps_speed_km> 10 // la vitesse est supérieure à 10 km / h
ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)
gps_speed_km> 10 et ain6> 5 // la vitesse est supérieure à 10 km / h et ain6 est supérieure à 5 (avec un nombre de particules de 10um - niveau de smog)
Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats sur la carte.
Il est nécessaire d'appuyer sur ce bouton pour modifier les réglages, paramètres (sauf en appuyant sur +/- boutons).
La table est rechargée depuis le début avec de nouveaux préréglages.
Cette case à cocher permet d'afficher / masquer le sélecteur de champs à afficher.
Les résultats du tableau sont triés selon Sorte réglage sur place. L'ordre de tri peut être modifié en appuyant sur l'en-tête de ligne (une fois pour une direction deux fois pour une autre direction).
Certains résultats dans des colonnes renvoient à d'autres écrans de visualisation (codés en dur).
Lors de l'affichage des données historiques pour l'appareil, elles doivent être limitées afin de ne pas afficher les informations d'historique complètes, car cela peut entraîner des problèmes de performances ou de mémoire insuffisante.
Les graphiques à barres doivent être exécutés à partir du formulaire principal en appuyant sur un seul champ dans la ligne «Bar».
Il affiche des barres triées normalisées à la valeur maximale, montrant de l'ordre le plus élevé au plus bas.
Il est utile pour vérifier rapidement les résultats extrêmes et prendre certaines mesures.
L'événement Mouse Over affichera des informations supplémentaires sur l'appareil.
Les graphiques historiques peuvent être lancés à partir du MainForm en appuyant sur la colonne sélectionnée dans la ligne "Historique" (pour un seul champ).
Pour les champs multiples de la ligne «Historique», les champs souhaités doivent être cochés et le lien «Historique» doit être pressé dans la colonne «Exécuter».
Les résultats historiques sont limités aux dernières 24 heures + 24 heures suivantes (pour les graphiques actualisés éventuels), lorsqu'aucune limite n'a été définie.
Les graphiques historiques lorsqu'ils sont ouverts à partir du lien principal nécessitent une initialisation comme les autres résultats, lorsqu'ils sont ouverts à partir du lien sans paramètres de préférences.
Plusieurs champs peuvent être sélectionnés pour afficher divers éléments. Il peut également être défini dans le formulaire de filtre de champ.
Cochez toutes les cases requises pour les champs affichés
Appuyez sur la case à cocher "Champs visibles" pour masquer le formulaire des champs
Appuyez sur le bouton Exécuter pour exécuter la requête DB et afficher la table
Éléments décrits de haut en bas et de gauche à droite (sur la capture d'écran).
IMEILe champ contient l'ID unique de l'appareil ou l'alias unique d'un appareil. Avec la valeur * (astérisque), il affiche le tableau des valeurs les plus récentes qui n'a aucun sens.
Si vous définissez IMEI sur une autre valeur, les données historiques de l'appareil sélectionné seront affichées.
Clause de limitation des résultats de données Chaîne de requête supplémentaire MySQL / MariaDB {WHERE part}.
Cette clause est prise en compte pour la construction de la chaîne QUERY complète pour le résultat de la base de données. Il peut limiter les données, le temps et toute autre valeur en limitant le nombre de résultats. Les noms de champ de table d'origine (pas d'alias) doivent être utilisés dans ce champ et une syntaxe SQL valide. Par exemple.
gps_speed_km> 10 // la vitesse est supérieure à 10 km / h
ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)
gps_speed_km> 10 et ain6> 5 // la vitesse est supérieure à 10 km / h et ain6 est supérieure à 5 (avec un nombre de particules de 10um - niveau de smog)
Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats historiques.
Il est nécessaire d'appuyer sur ce bouton pour modifier tous les réglages, paramètres (à l'exception de l'affichage des champs ou du panneau de requête). La table est rechargée depuis le début avec de nouveaux préréglages.
Cette case à cocher permet d'afficher / masquer le sélecteur de champs à afficher.
Le pointeur de la souris affiche les valeurs des mesures et la date / heure.
Fonction / Navigateur WWW | Chrome 72 | FireFox 65 | Bord | Opéra 58 |
Plans | + | + | + | + |
Historique | + | + (*) | + | + |
Barres | + | + | + | + |
Onglets | + | + | + | + |
* - Firefox ne prend pas en charge le sélecteur de date / heure (le champ de texte doit être modifié manuellement en utilisant le format de date et d'heure approprié).
Internet Explorer n'est pas pris en charge (utilisez Bord plutôt)
Les autres navigateurs Web n'ont pas été testés.
Les pages Web sont basées sur un fichier de modèle général situé à l'adresse "modèles" répertoire "* .template".
De plus, chaque type de page contient:
Fichier "* .head" qui stocke l'en-tête de la page (liens, CSS importés, JavaScript Fichiers, etc. )
Fichiers "* .foot" qui stockent le pied de page de la page (liens, etc. )
Le thème de visualisation peut être modifié selon les préférences de l'utilisateur en copiant et en modifiant les fichiers CSS. Les fichiers CSS se trouvent dans "modèles / css" annuaire. Différents thèmes de page Web peuvent être utilisés pour créer optimisé pour, par exemple. impression, SmartPhones, modèles PAD.
Languettele vues - ont un champ sélectionnable pour choisir le fichier CSS pour une modification complète du thème (stocké dans "modèles / css / onglets" répertoire).
Map vues - le thème général est sélectionné par "carte" zone de liste déroulante de type. De plus, il existe un fichier CSS par défaut "templates / css / map.css" qui contient des fonctionnalités supplémentaires telles que le masquage / la coloration des résultats en fonction de ses valeurs. Le reste de ce fichier CSS est pratiquement limité aux formulaires de requête et de champ.
La plupart de Plateforme @City Les fichiers PHP pour la visualisation acceptent cssparamètre avec la valeur du nom de fichier pour le thème (sans extension). Le fichier doit être situé dans le répertoire "templates / css" et le nom est sensible à la casse.
Certains éléments de l'affichage du thème se trouvent directement dans le fichier JavaScript situé dans "template / js" annuaire.
Principale @Ville scénario"@ City.js" se trouve dans le répertoire supérieur. Il n'y a pas de possibilité de modification dans ce emplacement, mais le script peut être copié vers "templates / js" répertoire et modifié là-bas. L'utilisation d'un script individuel nécessite la mise à jour de tous les fichiers d'en-tête.
Certains capteurs uniques peuvent nécessiter des fonctions de calcul dédiées.
Il n'est pas possible de mettre à jour et de maintenir plusieurs variantes de Logiciel @City Server, Interface PHP frontale, ce qui causerait beaucoup de problèmes, de versions, d'erreurs.
La meilleure et la plus simple façon d'y parvenir est de mettre à jour JavaScript les fichiers "superposés" pour un affichage correct de la valeur / description.
Les scripts JS d'origine sont des fichiers texte ouverts et peuvent être adaptés aux besoins des clients. Comme indiqué dans le chapitre précédent, ils doivent être copiés dans "templates / js" répertoire où le client a des droits d'accès pour la modification.
Aspect technique sur la programmation de @Ville système n'est pas un sujet de ce document, cependant les développeurs Web ayant des connaissances de base en HTML et JS peuvent personnaliser l'application Web frontale en fonction des besoins individuels des clients.
@City Database avec un nom "IoT" ou alors "* IoT" est divisé en tables (où astérix est le préfixe en fonction du serveur d'hébergement - si nécessaire). DataBase peut être observé dans PHPAdmin (application Web) au lien http: //% IP% / phpmyadmin
Tables définies pour chaque appareil (où * {asterix} est l'adresse IMEI - ID unique):
"* _t" - jetons pour l'autorisation des utilisateurs actuels (non utilisés pour les clouds mono-client)
"* _c" - file d'attente des commandes (événements) - à envoyer à l'appareil
"*" - tous les résultats d'état décodés.
Autres tableaux:
"ithings_" table - contient l'état actuel décodé de tous les appareils (il est copié lors de la mise à jour "*" les tables). Structure de ithings_ la table est presque la même que la "*" les tables. "ithings_" ont des champs supplémentaires pour l'adresse postale et les descriptions.
La table "users" est restreinte et doit être modifiée.
"idx" - index
"tm" - horodatage automatique
"dt" - horodatage unix
"imei" - adresse d'appareil unique
"rssi" - Niveau de signal RSSI
"rsrp" - Signal RSRP
"événements" - les événements en attente d'être envoyés au contrôleur
"out1" .. "out16" - état des sorties décodées
"en 1" .. "in16" - état des entrées décodées
"ain1" .. "ain8" - valeurs ADC décodées (RAW)
"sens1" .. "sens8" - valeurs de capteur converties (dépend du type d'appareil)
"dimm1" .. "dimm8" - valeurs des gradateurs décodées (dépend du type d'appareil)
"int1" .. "int6" - valeurs des compteurs décodés (dépend du type d'appareil)
"texte 1" .. "text6" - valeurs de texte décodées (dépend du type d'appareil)
"création" - date / heure de création de l'appareil
"dernier" - dernière date / heure
"utilisateur" - utilisation future
"pass" - utilisation future
"sn" - n ° de série gsm
"statut" - l'état actuel du contrôleur n'est pas décodé au format hexadécimal
"hash_code" - utilisation future
"addr" - adresse courte de l'appareil
"fwnr" - numéro de firmware
"disabled" - périphérique désactivé (non exécuté)
"gsm_nr" - Numéro gsm CIoT
"vendeur" - code du fournisseur (pour franchise / coproduction)
"timezone" - Décalage du fuseau horaire
"dst" - Utiliser les paramètres d'économies quotidiennes
"gps_lat" - Latitude GPS
"gps_long" - Longitude GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitude GPS
"gps_fix" - Fixation GPS (doit être 3 - pour des résultats valides)
"gps_cog" - GPS Cog
"gps_speed_km" - Vitesse GPS en [km / h]
"gps_sat" - Satellites GPS trouvés
"continent", "pays", "région", "sous-région", "sous-sous-région", "ville", "district", "rue", "street_nr", "item_nr" - Adresse du client et champs de description (!!!! Non disponible pour "*" tableaux historiques)
"log" - données de journal
Les noms de champs sont importants pour créer des requêtes SQL pour augmenter la fonctionnalité de recherche car le nom d'origine doit être utilisé dans l'instruction SQL.
Ce tableau est la file d'attente des événements / commandes pour chaque périphérique et a la structure suivante:
"commande" - commande à envoyer ou déjà envoyée au contrôleur
"confirmé" - indicateur de confirmation s'il a déjà été envoyé et confirmé
"date" - horodatage unix de l'événement
"mis à jour" - indicateur de mise à jour automatique (horodatage date / heure)
Les données peuvent être accessibles sans application Web frontale. Le système @City contient un script avec des fonctions de niveau intermédiaire. Les résultats sont renvoyés au format JSON.
http: //%IP%/IoT/que.php? func = devsjson
La requête renvoie la totalité "_ithings" table (états actuels de tous les appareils) au format JSON:
[{ "pays":"", "ville":"", "continent":"", "pays":"", "Région":"", "sous-région":"", "sous-sous-région":"", "ville":"", "quartier":"", "rue":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "création":"2019-02-09 18:12:38", "dernier":"0000-00-00 00:00:00", "événements":"", "utilisateur":"", "passe":"", "imei":"351580051067110", "sn":"", "statut":"73000200000f360033026800240000002c002c002dffffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "hash_code":"", "adr":"", "fwnr":"", "désactivée":"", "gsm_nr":"", "vendeur":"", "fuseau horaire":"", "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":"", "événements":"", "out1":"0", "out2":"0", "out3":"0", "out4":"0", "out5":"0", "out6":"0", "out7":"0", "out8":"0", "out9":"0", "sur10":"1", "sur11":"0", "sur12":"0", "out13":"0", "hors14":"0", "sur15":"0", "out16":"0", "en 1":"0", "en 2":"0", "in3":"0", "in4":"0", "in5":"0", "in6":"0", "in7":"0", "in8":"0", "in9":"0", "en10":"0", "en11":"0", "en12":"0", "en13":"0", "en14":"0", "en15":"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", "texte 1":"", "texte2":"", "texte3":"", "texte4":"", "texte5":"", "text6":"" }]
Interroger les données historiques d'un seul appareil par IMEI nr:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Étant donné que la table entière peut contenir des millions de lignes, elle doit être limitée par la clause WHERE afin de ne pas raccrocher le serveur.
Paramètres supplémentaires des paramètres d'URL:
func - imeijson
imei - IMEI de l'appareil
domaine - champs à afficher dans les résultats (liste séparée par des virgules)
min - valeur minimale pour le premier champ de la liste
max - valeur maximale pour le premier champ de la liste
sou alorst - champ de tri
tm - le champ est automatiquement ajouté aux résultats.
where - clause where pour limiter les données
Exemple:
Nous voulons obtenir le résultat suivant
pour appareil avec imei=356345080018095
afficher les champs: ain5, ain6, gps_lat, gps_long
et limiter ain5 dans la gamme ( 1 10000 ) - doit être le premier champ de la liste
et GPS avoir des données valides (gps_fix = 3)
et date / heure (tm) from14/02/2019 23:00:19 to 15/02/2019 00:00:00
Chaîne d'URL construite:
http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& champ =ain5, ain6, gps_lat, gps_long& min =1& max =1000& où =gps_fix = 3 et tm> "2019-02-14 23:00:19" et tm <"2019-02-15 00:00:00"
Résultats de la requête:
[{ "ain5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","tm":"14/02/2019 23:04:31" }, { "ain5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"14/02/2019 23:05:42" }, { "ain5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","tm":"14/02/2019 23:06:05" }, { "ain5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"14/02/2019 23:06:32" }, { "ain5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","tm":"14/02/2019 23:06:55" }]
Cette fonction renvoie des données limitées de la table "_ithings"
http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000
Paramètres:
func - fieldjson
domaine - champ à afficher dans les résultats - imei et tm sont automatiquement ajoutés
min - valeur minimale du champ
max - valeur maximale du champ
Pour la chaîne de requête ci-dessus, il renvoie resultats de ain5, imei, tm des champs:
si ain5 est à portée (13 500)
Résultats de la requête:
[{"imei":"353080090069142", "tm":"2019-03-14 11:51:01", "ain5":"14" },
{"imei":"356345080018095", "tm":"20/02/2019 09:13:04", "ain5":"115" },
{"imei":"Karczew", "tm":"2019-03-07 13:08:22", "ain5":"103" }]