@CityIoTクラウドプラットフォーム




iSys-インテリジェントシステムIoTソリューション









IoE.Systems

目次

1.1。 前書き。 5

1.1サポートされているデバイスタイプ。 5

1.2。 サポートされている製品タイプ。 5

1.3。 サポートされている通信プロトコル5

1.4。 デバイスのサポートされている通信技術6

1.5。 @City Cloud Server 6

1.5.1。 サーバーおよび通信ゲートウェイ7

1.5.2 HTTPLoRaWAN統合7

1.5.3。 フロントエンドインターフェース8

1.5.3。 サーバーアクセス権8

1.6。 スマートデバイス9

1.6.1。 CIoT-GSMデバイス9

1.6.3。 BAS、BMS、IoT-イーサネットおよびWiFiデバイス9

1.6.2。 IoT-LoRaWANデバイス9

1.7。 企業間(B2B)オプション9

2.2。 @CityIoTプラットフォーム機能10

3.3。 メインページ11

4.4。 メインフォーム11

4.1。 ヘッダー12

4.1.1。 ホームリンク-(実際の結果テーブルを開きます)12

4.1.2。 「X」チェックボックス-クエリフォーム12を開いたり閉じたりします

4.1.3。 「V」チェックボックス-フィールドフォーム12を開閉します

4.1.4。 グラフィカルアイコン-視覚化結果へのリンク(編集可能)12

4.2。 フォーム:12

4.2.1。 「X」チェックボックス-クエリフォーム12全体を開いたり閉じたりします

4.2.2。 CSS-視覚化テーマ12を選択します

4.2.3。[表示フィールド]チェックボックス-フィールドフィルターリストの表示/非表示12

4.2.4。 タブ:追加または削除するタブ名12

4.2.5。 ボタンの追加/削除-タブフィールド12の名前のタブを追加または削除します

4.2.6。 コアボタン12を選択します

4.2.7。 すべてのボタン12の選択を解除します

4.2.7。 すべて選択ボタン12

4.2.8。 フィルタを非表示-フォーム12全体を非表示

4.2.9。 実行ボタン-パラメータ設定の変更13

4.2.10。 「V」チェックボックス-フィルターフィールドを表示/高表示します。 13

4.3。 タブ13

4.4。 表の内容13

4.4.1。 実行-結果タイプ13を表示します

4.4.2。 コピー(+/-リンク)13

4.4.3。 テーブルセルリンク13

4.5。 データの順序13

4.6。 例13

5.5。 マップ15

5.1。 マップの初期化15

5.2。 クエリ15のオプション設定

5.2.1。 MAPスケールの変更(ズームレベル)16

5.2.2。 IMEI(デバイスフィールドの選択)16

5.2.3。 Lon、Lat(経度、緯度の座標フィールド)16

5.2.4。 MAPスタイルの変更(テーマ)16

5.2.5。 WHERE条項16

5.2.6。 実行(クエリ実行ボタン)16

5.2.7。 すべて選択解除(クエリからすべてのフィールドを削除)17

5.2.8。 「V」チェックボックス(フィールドフォームを開く/閉じる)17

5.2.9。 「X」チェックボックス(クエリフォームの表示/非表示)17

5.3。 例17

6.6。 表18に結果を表示する

6.1。 表18の初期化

6.2。 クエリ19のオプション設定

6.2.1。 並べ替え-フィールドを並べ替え、昇順/降順で並べ替え19

6.2.2。 DB / IMEI-デバイス19を選択

6.2.3。 CSS-スタイルの選択(視覚化テーマ)20

6.2.4。 表示フィールド-フィールドの表示/非表示フォーム20

6.2.5。 空を削除-空の列を表示しない20

6.2.6。 「X」チェックボックス(クエリフォームの表示/非表示)20

6.2.7。 Where句(データ制限用)20

6.2.8。 コアボタンの選択(最も一般的なフィールドを有効にする)20

6.2.9。 すべてのボタンの選択を解除(クエリからすべてのフィールドを削除)20

6.2.10。 実行(クエリ実行ボタン)20

6.2.11。 「V」チェックボックス(フィールドフォームを開く/閉じる)20

7。 棒グラフ。 21

8.8。 履歴チャート。 22

8.1。 履歴チャートの初期化22

8.2。 履歴チャートのオプション設定23

8.2.1。 IMEI-(履歴データを表示するにはデバイスを選択してください)23

8.2.2。 最小-最初のフィールド23の最小値を制限します

8.2.3。 最大-最初のフィールド23の最大値を制限します

8.2.4。 「V」-フィールドの表示/非表示フォーム23

8.2.5。 差出人:最小日時を設定(*)23

8.2.6。 宛先:最大日付日付/時刻を設定します(*)23

8.2.7。 「X」チェックボックス(クエリフォームの表示/非表示)23

8.2.8。 "どこ" 第23条

8.2.9。 すべてのボタンの選択を解除(クエリからすべてのフィールドを削除)23

8.2.10。 実行(クエリ実行ボタン)23

8.2.11。 「V」チェックボックス(フィールドフォームを開く/閉じる)24

8.3。 バーバリアント:(利用可能なデータのみを表示)24

8.4。 連続バリアント(同じデータ):24

9.9。 Webブラウザの互換性25

10.10。 テーマのカスタマイズ26

11.11。 アルゴリズムアップデート27

12.12。 データベース構造28

12.1。 「ithings_」および「*」テーブル構造29

12.2。 デバイスコマンド(イベント)キュー「* _c」テーブル-構造30

12.3。 データベースからの結果へのアクセス-中間レベル(データの読み取り)30

12.3.1。 すべてのデバイスの現在のステータスを取得する30

12.3.2。 デバイス31の履歴データを取得する

12.3.3。 デバイスのリストを取得します-制限付きの現在のステータスから単一のフィールド32


1.1。 前書き。

@CityIoTクラウドプラットフォームは専用です "マイクロクラウド" 個人のお客様のためのシステム。 プラットフォームは共有できず、1人の顧客だけが物理サーバーまたは仮想サーバー(VPSまたは専用サーバー)にアクセスできます。 お客様は、ヨーロッパまたは世界にある数十のデータセンターから1つを選択できます。

1.1サポートされているデバイスタイプ。

@CityIoTプラットフォームは、以下のiSys.PL製品専用です



1.2。 サポートされている製品タイプ。

@City(eCity)クラウドIoTプラットフォームは、IPIoT製品用のさまざまなサイズのシステムです(まとめて @City Hardware または CioTデバイス ):


1.3。 サポートされている通信プロトコル

@CityIoTプラットフォームは、通信用に次のプロトコルをサポートしています。

コントローラからクラウドサーバーに、またはその逆に送信されるデータは、最小のデータサイズとセキュリティの向上のために、一意のバイナリ形式で暗号化されます。 各パートナーは、デバイス認証、データ有効性チェックなどのために独自の暗号化キーを取得します。


eHouse / eCity以外のデバイスの場合、個別の暗号化アルゴリズムを提供できます( "C" 通信前にデータを保護するためのマイクロプロセッサの各パートナーのソースコード)。

この場合、データは、パブリック通信メディア(インターネット、Airなど)を介した双方向通信中に完全に安全です。 )。


1.4。 デバイスのサポートされている通信技術

@CityIoTプラットフォームは以下をサポートします:


@CityIoTプラットフォームはデバイス/ノード専用です:


1.5。 @City Cloud Server

@Cityソフトウェアは、要求されたパフォーマンスに応じて、LinuxベースのVPS(仮想プライベートサーバー)またはインターネット側の専用サーバーで動作します。 サーバー(後でサーバーと呼ばれる):


VPSには、以下に応じていくつかのバリエーションがあります。


以下に応じて、数十の専用サーバーが存在します。


@CityIoTプラットフォームは単一の顧客専用です。


顧客間で共有可能なサーバーではないため、セキュリティアクセスとパフォーマンスの問題が簡素化されます。 このため、お客様のみが効果的なセキュリティ、安定性、効率、データスループットなどに責任を負います。 パフォーマンスが不十分な場合、お客様は、期待される機能とパフォーマンスにより最適な、より高いプラン(VPSまたは専用サーバー)を購入できます。

特別な場合 "Cloud to cloud" コミュニケーションは、マルチカスタマークラウドではなく、データのグローバル化とより大きな領域への集中化のために実装される可能性があります。

1.5.1。 サーバーおよび通信ゲートウェイ

@City Serverの通信は、パフォーマンスを最大化するための低レベルのアプリケーションに基づいて実現されます。

@CityServerアプリケーションの主な機能は次のとおりです。

@City Serverソフトウェアはユーザーごとに同じであり、顧客ごとにカスタマイズすることはできません。

1.5.2 HTTPLoRaWAN統合

LoRaWANコントローラーは、LoRaWANネットワーク/アプリケーションサーバーで利用可能なHTTPインターフェイス(webhook)を介して@Cityクラウドと統合されます。

いくつかのタイプのネットワーク/アプリケーションサーバーがサポートされています。

TTN(期間限定) "放送中" およびドライバーに送信され、ファームウェアのアップグレードをサポートしないコマンドの最大数)

LoraWAN-スタック(インターネットにアクセスできる物理デバイスでのホスティングが必要です)。

LoraServer.Io(インターネットにアクセスできる物理デバイスでのホスティングが必要です。サーバーにデータを送信するだけで、ファームウェアのアップグレードはサポートされていません)



@City Cloud for LoRaWANコントローラーは、他のインターフェースと同じ方法で分割されます。 前の章で説明しました。

1.5.3。 フロントエンドインターフェース

フロントエンドインターフェイスは、@ City CloudDatabaseからカスタマイズされたデータを抽出するためのPHPスクリプトで実現されます。 元のSQLクエリに基づく非常に柔軟な検索メカニズムを使用して、必要なデータを制限します。 インターフェイスは、クエリ結果をJSON形式で提供し、JavaScriptフロントエンドWeb「アプリケーション」によるさらなるデコードと処理を行います。

元のフロントエンドインターフェイスはユーザーごとに同じであり、顧客ごとにカスタマイズすることはできません。

オーバーレイインターフェースは、お客様のカスタマイズを保証するために、当社のスタッフまたは協力して作成される場合があります。

1.5.3。 サーバーのアクセス権

(物理サーバーへの)顧客のアクセス権は制限されています。

「テンプレート」ディレクトリのみのファイルアクセス(ネイティブテキストファイル-.txt、.js、.css、.html):

その他のアクセス権:


iSys(Intelligent Systemsのスタッフ)は、rootアカウントを含むサーバー全体に無制限にアクセスでき、メンテナンスのために完全なDBアクセスが可能です。

特定の状況下では、iSysは、システム全体のセキュリティ、安定性、およびパフォーマンスに影響を与えない場合、ソースコードを確認し、テストを実行した後、顧客(PHPスクリプト、ファイル)に追加の制限付き権限を付与する場合があります。


1.6。 スマートデバイス

1.6.1。 CIoT-GSMデバイス

当社のデバイスには、通信用のマイクロコントローラーとGSM / GPS / GNSSモジュール(2G..4G、NBIoT、CATM1)が含まれています。 マイクロコントローラーには、安全なOTAファームウェアアップグレードのための暗号化されたブートローダーが含まれています。 これにより、同じものに基づいて多くのシステムバリアントを作成することができます "CIoTスマートデバイス".


1.6.3。 BAS、BMS、IoT-イーサネットおよびWiFiデバイス


イーサネットおよびWiFiコントローラーにより、システムへのIPベースの通信が可能になります(GSMオペレーターへのデータ転送の料金はかかりません)。 このデバイスはブートローダーも暗号化しており、デバイスはネイティブインターフェイスを介して更新される可能性があります。 WiFiの場合、メインサーバーからOTAファームウェアがアップグレードされます


1.6.2。 IoT-LoRaWANデバイス

LoRaWANは、非常に長距離(最大約 15km)。 この範囲は、データ送信の速度、データの量、エリアの都市化、およびデバイスの無線パスの効率によって異なります。

当社のデバイスには、通信用のマイクロコントローラーとLoRaWANモジュールが含まれています。 マイクロコントローラーには、安全なOTAソフトウェア更新のための暗号化されたブートローダーが含まれています。 これにより、同じものに基づいて複数のシステムバリアントを作成することができます "IoT smart device". デバイスは、追加のサブスクリプション料金なしでISMオープンバンドで動作します。 インターネットにアクセスできるエリア全体をカバーするには、LoRaWANゲートウェイを使用する必要があります。 デバイスの範囲内にある既存のLoRaWANゲート(TTNサーバー用に構成されている)の場合、それらを介して情報を送信することができます。 ファームウェアのアップグレードには、独自のネットワーク/アプリケーションLoRaWANサーバーと適切な通信範囲が必要です。

1.7。 企業間(B2B)オプション


ビジネスと協力にはいくつかのオプションがあります。

2.2。 @CityIoTプラットフォーム機能

@Cityプラットフォームは、データの視覚化、クエリ、制限、および処理のためのカスタマイズ可能なフロントエンドテンプレートをサポートします(現在/履歴データ):


ユーザーのフロントエンドには、静的IPまたはDNSリダイレクトドメイン/サブドメイン/ファイル(利用可能な場合)を介してアクセスできます。


模範的なデモインストール(見込み顧客に対してのみ有効になります)。

プラットフォームへのパブリックアクセスを有効にするために、テストする場合はお知らせください。

@Cityプラットフォームへの通信を有効にするには、リモートコンピューターの静的IPが必要になる場合があります。


3.3。 メインページ

セキュリティ上の理由から、メインページは意図的に空のままになっています。 http://%YourIP%/ IoT /

個別に有効化および編集され、利用可能なすべてのサービスへのリンクが含まれている場合があります。 @CityIoTプラットフォーム 必要な場合


4.4。 メインフォーム

メインフォームは、新しいプリセットとタブを作成することを目的としています:http://%IP%/IoT/que.php

これは、各構成の結果、ビュー、およびタブを作成するための初期フォームです。




説明(上から左から右へ)

4.1。 ヘッダ

4.1.1。 ホームリンク- (実績表を開きます)

4.1.2。 "バツ" チェックボックス-クエリフォームを開閉します

4.1.3。 「V」 チェックボックス-フィールドフォームを開閉します

4.1.4。 グラフィカルアイコン -視覚化結果へのリンク(編集可能)


4.2。 形:

4.2.1。 "バツ" チェックボックス-クエリフォーム全体を開いたり閉じたりします

4.2.2。 CSS- 視覚化テーマを選択

視覚化テーマの変更CSSファイルはに存在する必要があります "テンプレート/ css /" ディレクトリ-自動的にリストされます。

4.2.3。可視フィールド チェックボックス-フィールドフィルターリストを表示/非表示にします

4.2.4。 タブ: 追加または削除するタブ名

4.2.5。 削除を追加 ボタン-の名前のタブを追加または削除します タブ フィールド

4.2.6。 コアを選択 ボタン

テーブルに表示されているメインフィールドを選択します。 それ 更新されます 自動的に。

4.2.7。 すべての選択を解除 ボタン

すべてのフィールドの選択を解除します(その後、手動でいくつかのフィールドを選択する必要があります)

4.2.7。 すべて選択 ボタン

すべてのフィールドを選択します(その後、手動で一部のフィールドの選択を解除する必要があります)

4.2.8。 フィルタを非表示 -フォーム全体を非表示

これはすべて(X)チェックボックスと同等です

4.2.9。 実行する ボタン-パラメータ設定を変更します

4.2.10。 「V」 チェックボックス-フィルターフィールドを表示/高表示します。


4.3。 タブ

名前とプリセットを使用して個別に作成されたタブ( cfg / tabs.cfg ファイル)。

ファイルには実際には名前とURLが含まれています(タブ文字で区切られています)。


4.4。 テーブルの内容

フィールドフィルターによって制限されているすべてのフィールドを表示します。


表のフィールド:

4.4.1。 実行- ビューの結果タイプ

地図-マップ上の結果のマッピング(1つ以上のフィールドを選択できます)

歴史 -履歴チャート(1つ以上のフィールドを選択できます)

tab -テーブルを表示します(フィールドの任意の組み合わせを選択できます)

バー -棒グラフには1つのフィールドのみが表示されます

その値の1つを押すと、選択したフィールド(現在の行)で新しい結果が開きます。


4.4.2。 コピー(+/- リンク)

で設定された名前のタブの追加/削除 タブ フィールド。 テーブルの同じ行で選択されたフィールドのみを使用します。


4.4.3。 テーブルセルリンク

他のフィールド名を押すと、選択した行の選択したフィールドのデータ視覚化が開始されます。


4.5。 データの順序


表示されるフィールドの順序は、フィールド形式での順序と同じです(ただし tm フィールドは常にテキストの最後に送信されます)。 この順序は、URLパラメーター(フィールドの順序部分)を直接編集する場合にのみ変更できます。


4.6。 例

例:タブの設定 資産管理 名前と地図上の時間と速度の地図が含まれています

すべての説明は行を参照しています "Map" テキストは "実行" カラム。

  1. 名前を入力 "資産管理" に タブ フィールド(引用符なし)

  2. 行ですべての列が選択解除されていることを確認します

  3. 選択する tm, gps_speed_km 行のみ

  4. 押す + 行のどこにあるボタン






5.5。 マップ

マップは、事前設定を使用してMainFormから起動できます


5.1。 マップの初期化

リンクを使用して直接実行すると、マップの初期化は手動で実行されます。 > http://%IP%/IoT/maps.php


  1. ユーザーはすべてのフィールドの選択を解除する必要があります(を押します 選択を解除 ボタン)

  2. 表示されたフィールドのチェックボックスを押します(例: Ain5 (スモッグレベルの場合)および tm (測定日時用)

  3. 押す 「V」 フィールドフォームを非表示にするチェックボックス

  4. 押す 実行する DBクエリを実行し、すべてのセンサー/デバイスからの現在の情報を表示するボタン

  5. データ付きの地図は30秒以上経過すると更新されます。


5.2。 クエリのオプション設定

左から右に説明されている設定(上のスクリーンショット)。

5.2.1。 MAPスケールの変更(ズームレベル)

  1. ズームレベルは、スケールの(+/-)ボタンを使用して変更できます(それぞれcurrent_scale * 2またはcurrent_scale / 2)。 このボタンの1つを押すと、スケールが自動的に変更されます。

  2. 別の方法は、ズームレベルを選択することです ズーム コンボボックスフィールドを押して 実行する ボタン。 この場合、ビュー/マップ全体がリロードされて更新されます(初期化中にしばらく時間がかかります)。

5.2.2。 IMEI ([デバイスフィールド]を選択)

IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 デフォルト設定は * (アスタリスク)は、各デバイスの最新の値と地理的位置を示します。

IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。 これは、モバイルセンサーと移動センサーにのみ意味があります。そうでない場合、結果はマップ上の同じ位置で重複します。


5.2.3。 ロン、ラット (経度、緯度の座標フィールド)

地図の中心位置を設定します。 このフィールドは、マップ上でマウスボタンが押されたときにカーソル位置に設定されます。


5.2.4。 MAPスタイルの変更(テーマ)

マップのスタイル/テーマはから選択できます Map ComboBoxフィールド(例: ダーク、グレー、トポグラフィック)。

さまざまなマップテーマの最大ズームレベルが異なる場合があるため、適切なテーマを適用してマップの縮尺を大きくすることができます。


5.2.5。 WHERE句

ここで、Clauseは、MySQL / MariaDBの追加のクエリ文字列{WHEREpart}に使用されます。

この句は、データベース結果の完全なQUERY文字列を構成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドでは、元のテーブルフィールド名(エイリアスではない)を使用する必要があります。 例えば。

  1. gps_speed_km> 10 //速度が10km / hを超えている

  2. ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)

  3. gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)


5.2.6。 実行する (クエリボタンの実行)

このボタンを押すと、設定やパラメータを変更する必要があります(を押す場合を除く) +/- ボタン)。

マップは最初から新しいプリセットでロードされます。

現在のクエリに使用できるデータがない場合、マップはまったく読み込まれません。

5.2.7。 すべての選択を解除 (クエリからすべてのフィールドを削除します)

このボタンを押した後、結果をマップに表示するには、少なくとも1つのフィールドを手動で選択する必要があります。


5.2.8。 「V」 チェックボックス(フィールドフォームを開く/閉じる)

このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。


5.2.9。 "バツ" チェックボックス(クエリフォームの表示/非表示)

このチェックボックスを使用すると、フォーム全体を非表示にできます(( +/- ボタン)


マップ上の結果は継続的に更新され、新しい値で更新されます

5.3。 例

例:スモッグの結果(センサーが車に取り付けられている):スモッグレベル2.5um粒子(Ain5)、速度(gps_speed_km)、日付/時刻(tm)、地図(2-地形)、ズームレベル16

Where句:

"gps_fix = 3およびtm> "2019-02-1800:00:00"およびtm <"2019-02-1900:00:00"およびgps_speed_km> 0".

// GPS =有効な3D結果と日付= 2019-02-18&速度> 0 km / h



6.6。 表に結果を表示する

結果を表に表示します。

オン "メインフォーム" 押す "テーブル" 事前設定されたテーブルを表示するためにいくつかのフィールドを選択した後のアイテム




6.1。 テーブルの初期化

リンクからテーブルが開いているとき http://%IP%/IoT/que.php?func = tabs 事前に設定を初期化する必要があります。

表示フィールドを選択できます(を押して "可視フィールド" )チェックボックス。



  1. 表示されたフィールドに必要なすべてのチェックボックスを押します

  2. チェックボックスを押す "可視フィールド" フィールドフォームを非表示にする

  3. 実行ボタンを押してDBクエリを実行し、テーブルを表示します


6.2。 クエリのオプション設定

設定は左から右に説明されています(スクリーンショット)。

6.2.1。 並べ替え- フィールドを並べ替え、昇順/降順で並べ替えます

ソートフィールドは、列ヘッダーを押すのと同じです。

6.2.2。 DB / IMEI - デバイスを選択

IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 空の値の場合、最新の値のテーブルが表示されます。

IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。


6.2.3。 CSS- スタイルの選択(視覚化テーマ)

6.2.4。 可視フィールド -フィールドフォームの表示/非表示

6.2.5。 空を削除- 空の列を表示しない

6.2.6。 "バツ" チェックボックス(クエリフォームの表示/非表示)

6.2.7。 どこ 句 (データ制限用)

これは、MySQL / MariaDBの追加クエリ文字列{WHEREpart}の接尾辞です。

この句は、データベース結果の完全なQUERY文字列を作成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドでは、元のテーブルフィールド名(エイリアスではない)を使用する必要があります。 例えば。

  1. gps_speed_km> 10 //速度が10km / hを超えている

  2. ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)

  3. gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)


6.2.8。 コアを選択 ボタン(最も一般的なフィールドを有効にする)


6.2.9。 すべての選択を解除 ボタン(クエリからすべてのフィールドを削除します)

このボタンを押した後、結果をマップに表示するには、少なくとも1つのフィールドを手動で選択する必要があります。


6.2.10。 実行する (クエリボタンの実行)

このボタンを押すと、設定やパラメータを変更する必要があります(を押す場合を除く) +/- ボタン)。

テーブルは最初から新しいプリセットでリロードされます。



6.2.11。 「V」 チェックボックス(フィールドフォームを開く/閉じる)

このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。



表の結果は、次のように並べ替えられます ソート フィールド設定。 並べ替え順序は、行ヘッダーを押すことで変更できます(ある方向に1回、別の方向に2回)。

一部の結果の列は、別の視覚化画面にリンクしています(ハードコードされています)。


デバイスの履歴データを表示するときは、パフォーマンスやメモリ不足の問題が発生する可能性があるため、履歴情報全体を表示しないように制限する必要があります。


7。 棒グラフ。

棒グラフは、「棒」行の1つのフィールドを押して、メインフォームから実行する必要があります。

最大値に正規化されたソート済みのバーが表示され、最高から最低の順序で表示されます。

極端な結果をすばやくチェックし、いくつかのアクションを実行するのに役立ちます。





マウスオーバーイベントは、デバイスの追加情報を表示します。


8.8。 履歴チャート。

履歴チャートは、「履歴」行の選択した列を押すと、メインフォームから開始できます(単一フィールドの場合)。

「履歴」行の複数のフィールドの場合、必要なフィールドをチェックし、「実行」列の「履歴」リンクを押す必要があります。

過去の結果は、制限が設定されていない場合、過去24時間+次の24時間(最終的に更新されるグラフの場合)に制限されます。

8.1。 履歴チャートの初期化


メインリンクから開いたときの履歴チャートは、設定パラメータなしでリンクから開いたときに、他の結果として初期化する必要があります。

複数のフィールドを選択して、さまざまなアイテムを表示できます。 フィールドフィルターフォームで設定することもできます。




  1. 表示されたフィールドに必要なすべてのチェックボックスを押します

  2. チェックボックスを押す "可視フィールド" フィールドフォームを非表示にする

  3. 実行ボタンを押してDBクエリを実行し、テーブルを表示します


8.2。 履歴チャートのオプション設定

上から左から右に説明されているアイテム(スクリーンショット上)。

8.2.1。 IMEI -(履歴データを表示するには[デバイス]を選択します)

IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 *(アステリックス)値を使用すると、意味のない最新の値のテーブルが表示されます。

IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。

8.2.2。 最小- 最初のフィールドの最小値を制限する

8.2.3。 マックス- 最初のフィールドの最大値を制限する

8.2.4。 「V」 -フィールドフォームの表示/非表示

8.2.5。 から:最小日時を設定する(*)

8.2.6。 に:最大日付日付/時刻を設定します(*)

8.2.7。 "バツ" チェックボックス(クエリフォームの表示/非表示)

8.2.8。 "どこ"

データ結果を制限するための句MySQL / MariaDB追加のクエリ文字列{WHEREpart}。

この句は、データベース結果の完全なQUERY文字列を構成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドには、元のテーブルフィールド名(エイリアスではない)と有効なSQL構文を使用する必要があります。 例えば。

  1. gps_speed_km> 10 //速度が10km / hを超えている

  2. ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)

  3. gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)


8.2.9。 すべての選択を解除 ボタン(クエリからすべてのフィールドを削除します)

このボタンを押した後、履歴結果を表示するには、少なくとも1つのフィールドを手動で選択する必要があります。


8.2.10。 実行する (クエリボタンの実行)

このボタンを押すと、設定やパラメータを変更する必要があります(フィールドまたはクエリパネルの表示を除く)。 テーブルは最初から新しいプリセットでリロードされます。

8.2.11。 「V」 チェックボックス(フィールドフォームを開く/閉じる)

このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。


8.3。 バー バリアント:(利用可能なデータのみを表示します)



8.4。 継続的 バリアント(同じデータ):



マウスポインタは、測定値と日付/時刻を表示します。

9.9。 Webブラウザの互換性


機能/ WWWブラウザ

Chrome 72

FireFox 65

オペラ58

マップ

+

+

+

+

歴史的

+

+(*)

+

+

バー

+

+

+

+

タブ

+

+

+

+


* -Firefoxは日付/時刻ピッカーをサポートしていません(テキストフィールドは適切な日時形式を使用して手動で編集する必要があります)。

Internet Explorerはサポートされていません(使用 代わりに)

他のWebブラウザはテストされていません。



10.10。 テーマのカスタマイズ

Webページは、次の場所にある一般的なテンプレートファイルに基づいています。 「テンプレート」 ディレクトリ「* .template」。

さらに、各ページタイプには次のものが含まれます。

  1. ページのヘッダー(リンク、インポートされたCSS、JavaScriptファイルなど)を格納する「* .head」ファイル。 )

  2. ページのフッター(リンクなど)を格納する「* .foot」ファイル。 )


視覚化テーマは、CSSファイルに対処して変更することにより、ユーザーの好みに応じて変更できます。 CSSファイルはにあります 「テンプレート/ css」 ディレクトリ。 さまざまなWebページのテーマを使用して、たとえば次のように最適化されたものを作成できます。 印刷、スマートフォン、PADテンプレート。


タブle ビュー-テーマを完全に変更するためのCSSファイルを選択するための選択可能なフィールドがあります(に保存されています 「テンプレート/ css /タブ」 ディレクトリ)。




Map ビュー - 一般的なテーマはによって選択されます "地図" タイプコンボボックス。 さらに、デフォルトのCSSファイルがあります 「templates / css /map.css」 これには、値に基づいて結果を非表示/色付けするなどの追加機能が含まれています。 このCSSファイルの残りの部分は、実際にはクエリフォームとフィールドフォームに限定されています。


たいていの @Cityプラットフォーム 視覚化用のPHPファイルは cssテーマのファイル名の値を持つパラメーター(拡張子なし)。 ファイルは「templates / css」ディレクトリに配置する必要があり、名前では大文字と小文字が区別されます。


テーマ表示の一部の要素は、にあるJavaScriptファイルに直接あります。 「テンプレート/ js」 ディレクトリ。

メイン @市 脚本「@ City.js」 上位ディレクトリにあります。 これには変更の可能性はありません 場所。ただし、スクリプトは次の場所にコピーできます。 「テンプレート/ js」 ディレクトリとそこで変更されました。 個々のスクリプトを使用するには、すべてのヘッダーファイルを更新する必要があります。

11.11。 アルゴリズムの更新


一部の独自のセンサーには、専用の計算機能が必要な場合があります。

の複数のバリアントを更新および維持する可能性はありません @Cityサーバーソフトウェア, フロントエンドPHPインターフェース、多くの問題、バージョン、エラーが発生します。

それを達成するための最良かつ最も簡単な方法は、値/説明を適切に表示するためにJavaScript「オーバーレイ」ファイルを更新することです。

オリジナルのJSスクリプトはオープンテキストファイルであり、お客様のニーズに合わせて採用される可能性があります。 前の章で述べたように、それらはにコピーする必要があります 「テンプレート/ js」 顧客が変更のためのアクセス権を持っているディレクトリ。


のプログラミングに関する技術的側面 @市 システムはこのドキュメントの主題ではありませんが、HTMLとJSの基本的な知識を持つWeb開発者は、個々の顧客のニーズに合わせてフロントエンドWebアプリケーションをカスタマイズできます。


12.12。 データベース構造


名前の付いた@Cityデータベース 「IoT」 または 「* IoT」 テーブルに分割されます(ここで、アステリックスはホスティングサーバーに応じてプレフィックスです-必要に応じて)。 データベースは、リンクのPHPAdmin(Webアプリケーション)で確認できます。 http://%IP%/ phpmyadmin




各デバイスに設定されたテーブル ( どこ * {アステリックス}はIMEIアドレス-一意のID):

その他の表:



12.1。 「ithings_」および「*」テーブル構造

12.2。 デバイスコマンド(イベント)キュー「* _c」テーブル-構造


このテーブルは、各デバイスのイベント/コマンドキューであり、次の構造を持っています。



12.3。 データベースからの結果へのアクセス-中間レベル(データの読み取り)


フロントエンドWebアプリケーションなしでデータにアクセスできます。 @Cityシステムには、中間レベルの機能を備えたスクリプトが含まれています。 結果はJSON形式で返されます。


12.3.1。 すべてのデバイスの現在のステータスを取得します

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


クエリは全体を返します "_ithings" JSON形式のテーブル(すべてのデバイスの現在のステータス):

[{ "国":"", "市":"", "大陸":"", "国":"", "領域":"", "サブリージョン":"", "サブサブリージョン":"", "市":"", "地区":"", "通り":"", "street_nr":"", "item_nr":"", 「gps_lat」:"0000.0000N", 「gps_long」:"00000.0000E", 「tm」:"2019-02-10 12:56:23", 「創造」:"2019-02-09 18:12:38", "最終":"0000-00-00 00:00:00", 「イベント」:"", "ユーザー":"", "パス":"", 「いめい」:"351580051067110", "sn":"", "状態":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "ハッシュコード":"", "addr":"", "fwnr":"", "無効":"", "gsm_nr":"", "ベンダー":"", "タイムゾーン":"", "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」:"", 「イベント」:"", 「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", "1で":"0", "in2":"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", 「text1」:"", "text2":"", "text3":"", "text4":"", "text5":"", 「text6」:"" }]

12.3.2。 デバイスの履歴データを取得する

IMEInrによる単一デバイスの履歴データのクエリ:

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


テーブル全体に数百万の行が含まれる可能性があるため、サーバーがハングアップしないように、WHERE句で制限する必要があります。

追加のパラメーターURLパラメーター:

func -imeijson

imei -デバイスのIMEI

フィールド -結果に表示されるフィールド(コマ区切りリスト)

最小 -リストの最初のフィールドの最小値

最大 -リストの最初のフィールドの最大値

sまたはt - ソート用フィールド

tm -フィールドは結果に自動的に追加されます。

where -データを制限するwhere句


例:

以下の結果が欲しい

を備えたデバイス用 imei=356345080018095

フィールドを表示: ain5、ain6、gps_lat、gps_long

と制限 ain5 範囲内で ( 1、10000 )-リストの最初のフィールドである必要があります

そして GPS 有効なデータがある (gps_fix = 3)

と日付/時刻 (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00


構築されたURL文字列:

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


クエリ結果:

[{ "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。 デバイスのリストを取得します-制限付きの現在のステータスから単一のフィールド

この関数は、「_ ithings」テーブルから限られたデータを返します


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



パラメーター:

func --fieldjson

フィールド -結果に表示されるフィールド- imei そして tm 自動的に追加されます

最小 -フィールドの最小値

最大 -フィールドの最大値


上記のクエリ文字列の場合、 の結果 ain5、imei、tm 田畑:

もし ain5 範囲内です (13,5000)


クエリ結果:

[{「いめい」:"353080090069142", 「tm」:"2019-03-14 11:51:01", "ain5":"14" }、

{「いめい」:"356345080018095", 「tm」:"2019-02-20 09:13:04", "ain5":"115" }、

{「いめい」:"カルチェフ", 「tm」:"2019-03-07 13:08:22", "ain5":"103" }]