@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


1. Introduction.

@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.

1.1 Types d'appareils pris en charge.

La plateforme @City IoT est dédiée au suivi des produits iSys.PL



1.2. Types de produits pris en charge.

@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 ):


1.3. Protocoles de communication pris en charge

La plateforme @City IoT prend en charge les protocoles de communication suivants:

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. ).


1.4. Technologie de communication prise en charge des appareils

La plateforme @City IoT prend en charge:


La plateforme @City IoT est dédiée aux appareils / nœuds:


1.5. @City Cloud Server

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):


Plusieurs variantes de VPS existent selon:


Des dizaines de serveurs dédiés existent en fonction de:


La plateforme @City IoT est dédiée au client unique:


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.

1.5.1. Passerelles de serveur et de communication

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:

Le logiciel @City Server est le même pour chaque utilisateur et ne peut pas être personnalisé pour différents clients.

1.5.2 Intégration HTTP LoRaWAN

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.

1.5.3. Interface frontale

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.

1.5.3. Droits d'accès au serveur

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):

Autres droits d'accès:


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.


1.6. Appareils intelligents

1.6.1. CIoT - Appareils GSM

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".


1.6.3. BAS, BMS, IoT - Périphériques Ethernet et WiFi


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


1.6.2. IoT - Appareils LoRaWAN

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.

1.7. Options interentreprises (B2B)


Il existe plusieurs options pour les affaires et la coopération:

2. Fonctionnalité de la plateforme @City City

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):


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.


3. Page d'accueil

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


4. Forme principale

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)

4.1. Entête

4.1.1. Lien d'accueil - (ouvre le tableau des résultats réels)

4.1.2. "X" case à cocher - ouvre / ferme le formulaire de requête

4.1.3. "V" case à cocher - ouvre / ferme le formulaire des champs

4.1.4. Icônes graphiques - liens vers les résultats de visualisation (modifiables)


4.2. Forme:

4.2.1. "X" case à cocher - ouvre / ferme tout le formulaire de requête

4.2.2. CSS - Sélectionnez le thème de visualisation

Le fichier CSS de modification du thème de visualisation doit exister dans "modèles / css /" répertoire - répertorié automatiquement.

4.2.3 Champs visibles Case à cocher - affiche / masque la liste des filtres de champ

4.2.4. Languette: Nom de l'onglet à ajouter ou à supprimer

4.2.5. Ajouter enlever Boutons - Ajouter ou supprimer des onglets avec le nom dans Languette domaine

4.2.6. Sélectionnez Core Bouton

Sélectionnez les principaux champs visibles sur le tableau. Il Est mis à jour automatiquement.

4.2.7. Tout déselectionner Bouton

Désélectionnez tous les champs (doit être suivi en sélectionnant certains d'entre eux manuellement)

4.2.7. Tout sélectionner Bouton

Sélectionnez tous les champs (doivent être suivis de désélectionner certains d'entre eux manuellement)

4.2.8. Masquer le filtre - Cacher le formulaire entier

Ceci équivaut à la case à cocher all (X)

4.2.9. Exécuter Bouton - Modifier les paramètres des paramètres

4.2.10. "V" case à cocher - afficher / champs de filtre élevé.


4.3. Onglets

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).


4.4. Contenu de la table

Affiche tous les champs limités par le filtre de champ.


Champs du tableau:

4.4.1. Cours - type de résultat de vues

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).


4.4.2. Copier (+/- liens)

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.


4.4.3. Liens de cellule de 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.


4.5. Ordre des données


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).


4.6. Exemple

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.

  1. Entrez le nom "Suivi des actifs" dans Languette champ (sans guillemets)

  2. Assurez-vous que toutes les colonnes sont désélectionnées dans la ligne

  3. sélectionner tm, gps_speed_km seulement dans la rangée

  4. presse + bouton où dans la rangée






5. Plans

Les cartes peuvent être lancées à partir de MainForm avec une pré-configuration


5.1. Initialisation de la carte

L'initialisation de la carte est effectuée manuellement lorsqu'elle est exécutée directement avec le lien: > http: //%IP%/IoT/maps.php


  1. L'utilisateur doit désélectionner tous les champs (appuyez sur Désélectionner Bouton)

  2. 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)

  3. presse "V" case à cocher pour masquer le formulaire des champs

  4. 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

  5. La carte avec les données est mise à jour après 30 secondes ou plus.


5.2. Paramètres facultatifs pour la requête

Paramètres décrits de gauche à droite (sur la capture d'écran ci-dessus).

5.2.1. Modifier l'échelle de la carte (niveau de zoom)

  1. 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.

  2. 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).

5.2.2. IMEI (Sélectionnez le champ de l'appareil)

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.


5.2.3. Lon, Lat (Champs de coordonnées Longitude, Latitude)

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.


5.2.4. Modifier le style de la MAP (thème)

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.


5.2.5. Clause WHERE

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.

  1. gps_speed_km> 10 // la vitesse est supérieure à 10 km / h

  2. ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)

  3. 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)


5.2.6. Exécuter (Bouton Exécuter la requête)

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.

5.2.7. Tout déselectionner (Supprimer tous les champs de la requête)

Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats sur la carte.


5.2.8. "V" Case à cocher (ouvrir / fermer le formulaire de champ)

Cette case à cocher permet d'afficher / masquer le sélecteur de champs à afficher.


5.2.9. "X" Case à cocher (Afficher / Masquer le formulaire de requête)

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

5.3. Exemple

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



6. Afficher les résultats dans le tableau

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é




6.1. Initialisation de la table

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.



  1. Cochez toutes les cases requises pour les champs affichés

  2. Appuyez sur la case à cocher "Champs visibles" pour masquer le formulaire des champs

  3. Appuyez sur le bouton Exécuter pour exécuter la requête DB et afficher la table


6.2. Paramètres facultatifs pour la requête

Les paramètres sont décrits de gauche à droite (sur la capture d'écran).

6.2.1. Sorte - champ de tri et ordre croissant / décroissant

Le champ de tri équivaut à appuyer sur l'en-tête de colonne.

6.2.2. DB / IMEI - Choisir un appareil

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.


6.2.3. CSS - sélectionner le style (thème de visualisation)

6.2.4. Champs visibles - Afficher / masquer le formulaire de champs

6.2.5. Supprimer vide - N'affichez pas les colonnes vides

6.2.6. "X" Case à cocher (Afficher / Masquer le formulaire de requête)

6.2.7. Où Clause (pour la limitation des donné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.

  1. gps_speed_km> 10 // la vitesse est supérieure à 10 km / h

  2. ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)

  3. 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)


6.2.8. Sélectionnez Core Bouton (Activer les champs les plus courants)


6.2.9. Tout déselectionner Bouton (Supprimer tous les champs de la requête)

Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats sur la carte.


6.2.10. Exécuter (Bouton Exécuter la requête)

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.



6.2.11. "V" Case à cocher (ouvrir / fermer le formulaire de champ)

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.


7. Diagramme à barres.

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.


8. Graphiques historiques.

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.

8.1. Initialisation des graphiques historiques


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.




  1. Cochez toutes les cases requises pour les champs affichés

  2. Appuyez sur la case à cocher "Champs visibles" pour masquer le formulaire des champs

  3. Appuyez sur le bouton Exécuter pour exécuter la requête DB et afficher la table


8.2. Paramètres facultatifs des graphiques historiques

Éléments décrits de haut en bas et de gauche à droite (sur la capture d'écran).

8.2.1. IMEI - (Sélectionnez Appareil pour afficher les données historiques)

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.

8.2.2. Min - limite la valeur minimale du premier champ

8.2.3. Max - limite valeur maximale du premier champ

8.2.4. "V" - Afficher / masquer le formulaire de champs

8.2.5. De: définir la date / heure minimale (*)

8.2.6. À: définir la date / heure maximale (*)

8.2.7. "X" Case à cocher (Afficher / Masquer le formulaire de requête)

8.2.8. "Où" Clause

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.

  1. gps_speed_km> 10 // la vitesse est supérieure à 10 km / h

  2. ain5> 3 // ain5 est supérieur à 3 (contenant un nombre de particules de 2,5 μm - niveau de smog)

  3. 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)


8.2.9. Tout déselectionner Bouton (Supprimer tous les champs de la requête)

Après avoir appuyé sur ce bouton, au moins un champ doit être sélectionné manuellement pour afficher les résultats historiques.


8.2.10. Exécuter (Bouton Exécuter la requête)

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.

8.2.11. "V" Case à cocher (ouvrir / fermer le formulaire de champ)

Cette case à cocher permet d'afficher / masquer le sélecteur de champs à afficher.


8.3. Barres Variante: (affiche uniquement les données disponibles)



8.4. Continu variante (avec les mêmes données):



Le pointeur de la souris affiche les valeurs des mesures et la date / heure.

9. Compatibilité du navigateur Web


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.



dix. Personnalisation des thèmes

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:

  1. Fichier "* .head" qui stocke l'en-tête de la page (liens, CSS importés, JavaScript Fichiers, etc. )

  2. 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.

11. Mise à jour des algorithmes


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.


12. Structure de la base de données


@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):

Autres tableaux:



12.1. Structure des tables "ithings_" et "*"

12.2. Table "* _c" de la file d'attente des commandes de périphérique (événements) - structure


Ce tableau est la file d'attente des événements / commandes pour chaque périphérique et a la structure suivante:



12.3. Accès aux résultats à partir de bases de données - Niveau intermédiaire (lecture des données)


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.


12.3.1. Obtenez les statuts actuels de tous les appareils

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":"" }]

12.3.2. Obtenir des données historiques pour l'appareil

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

12.3.3. Obtenir la liste des appareils - champ unique à partir des états actuels avec limitation

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