@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
@CityIoTクラウドプラットフォームは専用です "マイクロクラウド" 個人のお客様のためのシステム。 プラットフォームは共有できず、1人の顧客だけが物理サーバーまたは仮想サーバー(VPSまたは専用サーバー)にアクセスできます。 お客様は、ヨーロッパまたは世界にある数十のデータセンターから1つを選択できます。
@CityIoTプラットフォームは、以下のiSys.PL製品専用です
IoT-RF/ LoRaWAN(モノのインターネット)
CIoT-GSM / 2G / 3G / 4G / CATM1 / NBIoT(セルモノのインターネット)
Wi-Fi
イーサネット
@City(eCity)クラウドIoTプラットフォームは、IPIoT製品用のさまざまなサイズのシステムです(まとめて @City Hardware または CioTデバイス ):
@市
@光
@Metering
@痕跡
@AirQ
@置き場
@CityIoTプラットフォームは、通信用に次のプロトコルをサポートしています。
UDP-CIoTセンサー/デバイス(特にNBIoT)に推奨-データ使用率が最も低い
TCPIP-双方向通信を備えたデバイスに推奨-ハンドシェイク/確認
HTTP-データアクセス/視覚化/エクスポート/にのみ推奨 "クラウドからクラウドへ"
HTTPWebhook-LoRaWANネットワーク/アプリケーションサーバーと@CityCloud間のLoRaWAN通信用。
コントローラからクラウドサーバーに、またはその逆に送信されるデータは、最小のデータサイズとセキュリティの向上のために、一意のバイナリ形式で暗号化されます。 各パートナーは、デバイス認証、データ有効性チェックなどのために独自の暗号化キーを取得します。
eHouse / eCity以外のデバイスの場合、個別の暗号化アルゴリズムを提供できます( "C" 通信前にデータを保護するためのマイクロプロセッサの各パートナーのソースコード)。
この場合、データは、パブリック通信メディア(インターネット、Airなど)を介した双方向通信中に完全に安全です。 )。
@CityIoTプラットフォームは以下をサポートします:
GSM:2G、3G、4G(LTE)、CATM1(LTEM1)、NBIoT-デバイス(UDP / TCPIP通信)
LoRaWANデバイス(HTTP Webhook)-LoRaWANゲートウェイおよびLoRaWANネットワーク/アプリケーションサーバー経由
イーサネットコントローラー(UDP / TCP通信)
WiFiコントローラー(UDP / TCP通信)
将来のIP製品
追加のローカル@ City / eHouse経由の非IP製品PROハードウェアゲートウェイ
@CityIoTプラットフォームはデバイス/ノード専用です:
ネイティブiSys製品:
CIoT(GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT(LoRaWAN)
WiFi- @ Cityプラットフォーム専用の製品
イーサネット-@ Cityプラットフォーム専用の製品
共同制作製品(iSysライセンスおよび外部ブランドの下でサードパーティによって製造された)
フランチャイズ製品(iSysロゴ付きのiSysライセンスに基づいてサードパーティによって製造されたもの)
@Cityソフトウェアは、要求されたパフォーマンスに応じて、LinuxベースのVPS(仮想プライベートサーバー)またはインターネット側の専用サーバーで動作します。 サーバー(後でサーバーと呼ばれる):
プライベート/パブリックアクセス
全体的なデバイス数
デバイスのステータス頻度の更新
データのリフレッシュレート
VPSには、以下に応じていくつかのバリエーションがあります。
価格
データセンターのジオローカリゼーション
仮想プロセッサコア(1〜8)
仮想RAM(1〜32 GB)
SSDディスク(20GB-1TB)
以下に応じて、数十の専用サーバーが存在します。
価格
データセンターのジオローカリゼーション
プロセッサコア(4。。 32)
RAM(16。。 512GB)
SSD / HDD(256GB .. 8TB)
@CityIoTプラットフォームは単一の顧客専用です。
地方自治体および当局(市、コミュニティ、国)
B2B(サードパーティの所有者用)
顧客間で共有可能なサーバーではないため、セキュリティアクセスとパフォーマンスの問題が簡素化されます。 このため、お客様のみが効果的なセキュリティ、安定性、効率、データスループットなどに責任を負います。 パフォーマンスが不十分な場合、お客様は、期待される機能とパフォーマンスにより最適な、より高いプラン(VPSまたは専用サーバー)を購入できます。
特別な場合 "Cloud to cloud" コミュニケーションは、マルチカスタマークラウドではなく、データのグローバル化とより大きな領域への集中化のために実装される可能性があります。
@City Serverの通信は、パフォーマンスを最大化するための低レベルのアプリケーションに基づいて実現されます。
@CityServerアプリケーションの主な機能は次のとおりです。
デバイスから非同期でデータを受信します(プロトコル経由:UDP、TCP IP、HTTP)
デバイスとクラウド間のデータ使用率とそのコストを最小限に抑えます(低レベルの通信プロトコルUDP、TCP IPを使用することにより)
デバイスの暗号化されたステータスを(任意の通信メディアを介して)受信します
デバイスのステータスを復号化することにより、デバイスからのデータを承認および検証します
デバイスのステータスをデコードし、MariaDB / MySQLテーブルに直接(生データ形式で)更新します
現在のデータテーブル(各デバイスの最新のステータスのみが含まれます)
履歴データテーブル(単一デバイスのすべてのステータスが含まれます)
保留中のコマンド(イベント)をデバイスに送信する
ハンドシェイク、検証、確認を保証する
@City Serverソフトウェアはユーザーごとに同じであり、顧客ごとにカスタマイズすることはできません。
LoRaWANコントローラーは、LoRaWANネットワーク/アプリケーションサーバーで利用可能なHTTPインターフェイス(webhook)を介して@Cityクラウドと統合されます。
いくつかのタイプのネットワーク/アプリケーションサーバーがサポートされています。
TTN(期間限定) "放送中" およびドライバーに送信され、ファームウェアのアップグレードをサポートしないコマンドの最大数)
LoraWAN-スタック(インターネットにアクセスできる物理デバイスでのホスティングが必要です)。
LoraServer.Io(インターネットにアクセスできる物理デバイスでのホスティングが必要です。サーバーにデータを送信するだけで、ファームウェアのアップグレードはサポートされていません)
@City Cloud for LoRaWANコントローラーは、他のインターフェースと同じ方法で分割されます。 前の章で説明しました。
フロントエンドインターフェイスは、@ City CloudDatabaseからカスタマイズされたデータを抽出するためのPHPスクリプトで実現されます。 元のSQLクエリに基づく非常に柔軟な検索メカニズムを使用して、必要なデータを制限します。 インターフェイスは、クエリ結果をJSON形式で提供し、JavaScriptフロントエンドWeb「アプリケーション」によるさらなるデコードと処理を行います。
元のフロントエンドインターフェイスはユーザーごとに同じであり、顧客ごとにカスタマイズすることはできません。
オーバーレイインターフェースは、お客様のカスタマイズを保証するために、当社のスタッフまたは協力して作成される場合があります。
(物理サーバーへの)顧客のアクセス権は制限されています。
「テンプレート」ディレクトリのみのファイルアクセス(ネイティブテキストファイル-.txt、.js、.css、.html):
純粋なHTMLファイルの追加、削除、変更(フロントエンドGUI /インターフェース開発)
純粋なJavaScriptファイルの追加、削除、変更(フロントエンドGUI /インターフェイス開発とアルゴリズム)
純粋なCSSファイルの追加、削除、変更(フロントエンド-カスタムビュー/テーマ)
テンプレートのテキストファイルの追加、削除、変更(フロントエンドGUI)
タブ、ショートカット、データ結果へのリンクの追加、削除、変更
その他のアクセス権:
すべてのデバイスデータが保存されている@CityクラウドデータベースMySQL / MariaDBへのフルアクセス
Webサービスへのアクセスは顧客に対して定義されています(資格情報)。
お客様が第三者に資格情報を渡すことは許可されていません(結果に複数回アクセスすると、システム全体のパフォーマンス、安定性、セキュリティに影響を与える可能性があります)
特別な状況や高性能の専用サーバーの使用状況では、(履歴ではなく)最新のデータを監視するようにパブリックアカウントが設定される場合があります。
@City Serverのパフォーマンスに影響を与えないために、ユーザーは自分のMySQLサーバーにデータを複製し、独自のデータ分析と処理を実行できます。
iSys(Intelligent Systemsのスタッフ)は、rootアカウントを含むサーバー全体に無制限にアクセスでき、メンテナンスのために完全なDBアクセスが可能です。
特定の状況下では、iSysは、システム全体のセキュリティ、安定性、およびパフォーマンスに影響を与えない場合、ソースコードを確認し、テストを実行した後、顧客(PHPスクリプト、ファイル)に追加の制限付き権限を付与する場合があります。
当社のデバイスには、通信用のマイクロコントローラーとGSM / GPS / GNSSモジュール(2G..4G、NBIoT、CATM1)が含まれています。 マイクロコントローラーには、安全なOTAファームウェアアップグレードのための暗号化されたブートローダーが含まれています。 これにより、同じものに基づいて多くのシステムバリアントを作成することができます "CIoTスマートデバイス".
イーサネットおよびWiFiコントローラーにより、システムへのIPベースの通信が可能になります(GSMオペレーターへのデータ転送の料金はかかりません)。 このデバイスはブートローダーも暗号化しており、デバイスはネイティブインターフェイスを介して更新される可能性があります。 WiFiの場合、メインサーバーからOTAファームウェアがアップグレードされます
LoRaWANは、非常に長距離(最大約 15km)。 この範囲は、データ送信の速度、データの量、エリアの都市化、およびデバイスの無線パスの効率によって異なります。
当社のデバイスには、通信用のマイクロコントローラーとLoRaWANモジュールが含まれています。 マイクロコントローラーには、安全なOTAソフトウェア更新のための暗号化されたブートローダーが含まれています。 これにより、同じものに基づいて複数のシステムバリアントを作成することができます "IoT smart device". デバイスは、追加のサブスクリプション料金なしでISMオープンバンドで動作します。 インターネットにアクセスできるエリア全体をカバーするには、LoRaWANゲートウェイを使用する必要があります。 デバイスの範囲内にある既存のLoRaWANゲート(TTNサーバー用に構成されている)の場合、それらを介して情報を送信することができます。 ファームウェアのアップグレードには、独自のネットワーク/アプリケーションLoRaWANサーバーと適切な通信範囲が必要です。
ビジネスと協力にはいくつかのオプションがあります。
既製の製品(配電盤、デバイス)のインポート/エクスポート-最終製品
OEM製品(PCB、コントローラーなど)のインポート/エクスポート-中間製品、スペアパーツ
フランチャイズ-iSysの下でのローカル市場向けのライセンスに基づく生産(プログラムされたマイクロコントローラーのみを提供)-Intelligent Systems Brands
共同制作-(上記のように)が外部ブランドの下で
@Cityプラットフォームは、データの視覚化、クエリ、制限、および処理のためのカスタマイズ可能なフロントエンドテンプレートをサポートします(現在/履歴データ):
選択したデータを地図上に視覚化する(ジオローカリゼーション)
選択したデータと結果をテーブルに表示します
選択したデータを棒グラフで表示します
選択したデータを履歴チャートに表示します
データをサードパーティのアプリケーションにエクスポートし、さらに処理する
その他の機能は、個々のリクエストに応じて更新されます。
ユーザーのフロントエンドには、静的IPまたはDNSリダイレクトドメイン/サブドメイン/ファイル(利用可能な場合)を介してアクセスできます。
模範的なデモインストール(見込み顧客に対してのみ有効になります)。
プラットフォームへのパブリックアクセスを有効にするために、テストする場合はお知らせください。
@Cityプラットフォームへの通信を有効にするには、リモートコンピューターの静的IPが必要になる場合があります。
セキュリティ上の理由から、メインページは意図的に空のままになっています。 http://%YourIP%/ IoT /
個別に有効化および編集され、利用可能なすべてのサービスへのリンクが含まれている場合があります。 @CityIoTプラットフォーム 必要な場合
メインフォームは、新しいプリセットとタブを作成することを目的としています:http://%IP%/IoT/que.php
これは、各構成の結果、ビュー、およびタブを作成するための初期フォームです。
説明(上から左から右へ)
視覚化テーマの変更CSSファイルはに存在する必要があります "テンプレート/ css /" ディレクトリ-自動的にリストされます。
テーブルに表示されているメインフィールドを選択します。 それ 更新されます 自動的に。
すべてのフィールドの選択を解除します(その後、手動でいくつかのフィールドを選択する必要があります)
すべてのフィールドを選択します(その後、手動で一部のフィールドの選択を解除する必要があります)
これはすべて(X)チェックボックスと同等です
名前とプリセットを使用して個別に作成されたタブ( cfg / tabs.cfg ファイル)。
ファイルには実際には名前とURLが含まれています(タブ文字で区切られています)。
フィールドフィルターによって制限されているすべてのフィールドを表示します。
表のフィールド:
地図-マップ上の結果のマッピング(1つ以上のフィールドを選択できます)
歴史 -履歴チャート(1つ以上のフィールドを選択できます)
tab -テーブルを表示します(フィールドの任意の組み合わせを選択できます)
バー -棒グラフには1つのフィールドのみが表示されます
その値の1つを押すと、選択したフィールド(現在の行)で新しい結果が開きます。
で設定された名前のタブの追加/削除 タブ フィールド。 テーブルの同じ行で選択されたフィールドのみを使用します。
他のフィールド名を押すと、選択した行の選択したフィールドのデータ視覚化が開始されます。
表示されるフィールドの順序は、フィールド形式での順序と同じです(ただし tm フィールドは常にテキストの最後に送信されます)。 この順序は、URLパラメーター(フィールドの順序部分)を直接編集する場合にのみ変更できます。
例:タブの設定 資産管理 名前と地図上の時間と速度の地図が含まれています
すべての説明は行を参照しています "Map" テキストは "実行" カラム。
名前を入力 "資産管理" に タブ フィールド(引用符なし)
行ですべての列が選択解除されていることを確認します
選択する tm, gps_speed_km 行のみ
押す + 行のどこにあるボタン
マップは、事前設定を使用してMainFormから起動できます
リンクを使用して直接実行すると、マップの初期化は手動で実行されます。 > http://%IP%/IoT/maps.php
ユーザーはすべてのフィールドの選択を解除する必要があります(を押します 選択を解除 ボタン)
表示されたフィールドのチェックボックスを押します(例: Ain5 (スモッグレベルの場合)および tm (測定日時用)
押す 「V」 フィールドフォームを非表示にするチェックボックス
押す 実行する DBクエリを実行し、すべてのセンサー/デバイスからの現在の情報を表示するボタン
データ付きの地図は30秒以上経過すると更新されます。
左から右に説明されている設定(上のスクリーンショット)。
ズームレベルは、スケールの(+/-)ボタンを使用して変更できます(それぞれcurrent_scale * 2またはcurrent_scale / 2)。 このボタンの1つを押すと、スケールが自動的に変更されます。
別の方法は、ズームレベルを選択することです ズーム コンボボックスフィールドを押して 実行する ボタン。 この場合、ビュー/マップ全体がリロードされて更新されます(初期化中にしばらく時間がかかります)。
IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 デフォルト設定は * (アスタリスク)は、各デバイスの最新の値と地理的位置を示します。
IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。 これは、モバイルセンサーと移動センサーにのみ意味があります。そうでない場合、結果はマップ上の同じ位置で重複します。
地図の中心位置を設定します。 このフィールドは、マップ上でマウスボタンが押されたときにカーソル位置に設定されます。
マップのスタイル/テーマはから選択できます Map ComboBoxフィールド(例: ダーク、グレー、トポグラフィック)。
さまざまなマップテーマの最大ズームレベルが異なる場合があるため、適切なテーマを適用してマップの縮尺を大きくすることができます。
ここで、Clauseは、MySQL / MariaDBの追加のクエリ文字列{WHEREpart}に使用されます。
この句は、データベース結果の完全なQUERY文字列を構成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドでは、元のテーブルフィールド名(エイリアスではない)を使用する必要があります。 例えば。
gps_speed_km> 10 //速度が10km / hを超えている
ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)
gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)
このボタンを押すと、設定やパラメータを変更する必要があります(を押す場合を除く) +/- ボタン)。
マップは最初から新しいプリセットでロードされます。
現在のクエリに使用できるデータがない場合、マップはまったく読み込まれません。
このボタンを押した後、結果をマップに表示するには、少なくとも1つのフィールドを手動で選択する必要があります。
このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。
このチェックボックスを使用すると、フォーム全体を非表示にできます(( +/- ボタン)
マップ上の結果は継続的に更新され、新しい値で更新されます
例:スモッグの結果(センサーが車に取り付けられている):スモッグレベル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
結果を表に表示します。
オン "メインフォーム" 押す "テーブル" 事前設定されたテーブルを表示するためにいくつかのフィールドを選択した後のアイテム
リンクからテーブルが開いているとき http://%IP%/IoT/que.php?func = tabs 事前に設定を初期化する必要があります。
表示フィールドを選択できます(を押して "可視フィールド" )チェックボックス。
表示されたフィールドに必要なすべてのチェックボックスを押します
チェックボックスを押す "可視フィールド" フィールドフォームを非表示にする
実行ボタンを押してDBクエリを実行し、テーブルを表示します
設定は左から右に説明されています(スクリーンショット)。
ソートフィールドは、列ヘッダーを押すのと同じです。
IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 空の値の場合、最新の値のテーブルが表示されます。
IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。
これは、MySQL / MariaDBの追加クエリ文字列{WHEREpart}の接尾辞です。
この句は、データベース結果の完全なQUERY文字列を作成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドでは、元のテーブルフィールド名(エイリアスではない)を使用する必要があります。 例えば。
gps_speed_km> 10 //速度が10km / hを超えている
ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)
gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)
このボタンを押した後、結果をマップに表示するには、少なくとも1つのフィールドを手動で選択する必要があります。
このボタンを押すと、設定やパラメータを変更する必要があります(を押す場合を除く) +/- ボタン)。
テーブルは最初から新しいプリセットでリロードされます。
このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。
表の結果は、次のように並べ替えられます ソート フィールド設定。 並べ替え順序は、行ヘッダーを押すことで変更できます(ある方向に1回、別の方向に2回)。
一部の結果の列は、別の視覚化画面にリンクしています(ハードコードされています)。
デバイスの履歴データを表示するときは、パフォーマンスやメモリ不足の問題が発生する可能性があるため、履歴情報全体を表示しないように制限する必要があります。
棒グラフは、「棒」行の1つのフィールドを押して、メインフォームから実行する必要があります。
最大値に正規化されたソート済みのバーが表示され、最高から最低の順序で表示されます。
極端な結果をすばやくチェックし、いくつかのアクションを実行するのに役立ちます。
マウスオーバーイベントは、デバイスの追加情報を表示します。
履歴チャートは、「履歴」行の選択した列を押すと、メインフォームから開始できます(単一フィールドの場合)。
「履歴」行の複数のフィールドの場合、必要なフィールドをチェックし、「実行」列の「履歴」リンクを押す必要があります。
過去の結果は、制限が設定されていない場合、過去24時間+次の24時間(最終的に更新されるグラフの場合)に制限されます。
メインリンクから開いたときの履歴チャートは、設定パラメータなしでリンクから開いたときに、他の結果として初期化する必要があります。
複数のフィールドを選択して、さまざまなアイテムを表示できます。 フィールドフィルターフォームで設定することもできます。
表示されたフィールドに必要なすべてのチェックボックスを押します
チェックボックスを押す "可視フィールド" フィールドフォームを非表示にする
実行ボタンを押してDBクエリを実行し、テーブルを表示します
上から左から右に説明されているアイテム(スクリーンショット上)。
IMEIフィールドには、デバイスの一意のIDまたはデバイスの一意のエイリアスが含まれます。 *(アステリックス)値を使用すると、意味のない最新の値のテーブルが表示されます。
IMEIを他の値に設定すると、選択したデバイスの履歴データが表示されます。
データ結果を制限するための句MySQL / MariaDB追加のクエリ文字列{WHEREpart}。
この句は、データベース結果の完全なQUERY文字列を構成するために考慮されます。 結果の数を制限することにより、データ、時間、およびその他の値を制限する場合があります。 このフィールドには、元のテーブルフィールド名(エイリアスではない)と有効なSQL構文を使用する必要があります。 例えば。
gps_speed_km> 10 //速度が10km / hを超えている
ain5> 3 // ain5が3より大きい(2.5umの粒子数を保持-スモッグレベル)
gps_speed_km> 10およびain6> 5 //速度が10km / hを超え、ain6が5より大きい(10um粒子カウントを保持-スモッグレベル)
このボタンを押した後、履歴結果を表示するには、少なくとも1つのフィールドを手動で選択する必要があります。
このボタンを押すと、設定やパラメータを変更する必要があります(フィールドまたはクエリパネルの表示を除く)。 テーブルは最初から新しいプリセットでリロードされます。
このチェックボックスは、表示するフィールドのセレクターを表示/非表示にするために使用されます。
マウスポインタは、測定値と日付/時刻を表示します。
機能/ WWWブラウザ | Chrome 72 | FireFox 65 | 縁 | オペラ58 |
マップ | + | + | + | + |
歴史的 | + | +(*) | + | + |
バー | + | + | + | + |
タブ | + | + | + | + |
* -Firefoxは日付/時刻ピッカーをサポートしていません(テキストフィールドは適切な日時形式を使用して手動で編集する必要があります)。
Internet Explorerはサポートされていません(使用 縁 代わりに)
他のWebブラウザはテストされていません。
Webページは、次の場所にある一般的なテンプレートファイルに基づいています。 「テンプレート」 ディレクトリ「* .template」。
さらに、各ページタイプには次のものが含まれます。
ページのヘッダー(リンク、インポートされたCSS、JavaScriptファイルなど)を格納する「* .head」ファイル。 )
ページのフッター(リンクなど)を格納する「* .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」 ディレクトリとそこで変更されました。 個々のスクリプトを使用するには、すべてのヘッダーファイルを更新する必要があります。
一部の独自のセンサーには、専用の計算機能が必要な場合があります。
の複数のバリアントを更新および維持する可能性はありません @Cityサーバーソフトウェア, フロントエンドPHPインターフェース、多くの問題、バージョン、エラーが発生します。
それを達成するための最良かつ最も簡単な方法は、値/説明を適切に表示するためにJavaScript「オーバーレイ」ファイルを更新することです。
オリジナルのJSスクリプトはオープンテキストファイルであり、お客様のニーズに合わせて採用される可能性があります。 前の章で述べたように、それらはにコピーする必要があります 「テンプレート/ js」 顧客が変更のためのアクセス権を持っているディレクトリ。
のプログラミングに関する技術的側面 @市 システムはこのドキュメントの主題ではありませんが、HTMLとJSの基本的な知識を持つWeb開発者は、個々の顧客のニーズに合わせてフロントエンドWebアプリケーションをカスタマイズできます。
名前の付いた@Cityデータベース 「IoT」 または 「* IoT」 テーブルに分割されます(ここで、アステリックスはホスティングサーバーに応じてプレフィックスです-必要に応じて)。 データベースは、リンクのPHPAdmin(Webアプリケーション)で確認できます。 http://%IP%/ phpmyadmin
各デバイスに設定されたテーブル ( どこ * {アステリックス}はIMEIアドレス-一意のID):
「* _t」 -現在のユーザー認証用のトークン(単一顧客クラウドには使用されません)
"* _c" -コマンド(イベント)キュー-デバイスに送信されます
「*」 -デコードされたすべてのステータス結果。
その他の表:
「ithings_」 テーブル-すべてのデバイスのデコードされた現在のステータスが含まれます(更新中にコピーされます 「*」 テーブル)。 の構造 ithings_ テーブルはほとんど同じです 「*」 テーブル。 「ithings_」 住所と説明用の追加フィールドがあります。
「users」テーブルは制限されているため、変更する必要があります。
「idx」 -インデックス
「tm」 -自動タイムスタンプ
「dt」 --unixタイムスタンプ
「いめい」 -一意のデバイスアドレス
「rssi」 -RSSI信号レベル
「rsrp」 -RSRP信号
「イベント」 -コントローラーに送信されるイベントを待機しています
「out1」 .. 「out16」 -デコードされた出力ステータス
"1で" .. 「in16」 -デコードされた入力ステータス
「ain1」 .. 「ain8」 -デコードされたADC値(RAW)
「sens1」 .. 「sens8」 -変換されたセンサー値(デバイスタイプによって異なります)
「dimm1」 .. 「dimm8」 -デコードされた調光器の値(デバイスタイプによって異なります)
「int1」 .. 「int6」 -デコードされたカウンター値(デバイスタイプによって異なります)
「text1」 .. 「text6」 -デコードされたテキスト値(デバイスタイプによって異なります)
「創造」 -デバイスの作成日時
"最終" -最終日時
「ユーザー」-将来の使用
「合格」-将来の使用
「sn」-gsmシリアル番号
"状態" -現在のコントローラーのステータスが16進形式でデコードされていません
"hash_code"-将来の使用
"addr"-短いデバイスアドレス
「fwnr」-ファームウェアnr
「無効」-無効なデバイス(実行されていません)
"gsm_nr" -CIoTgsm番号
「ベンダー」-ベンダーコード(フランチャイズ/共同制作用)
「タイムゾーン」-タイムゾーンオフセット
「dst」-毎日の貯蓄設定を使用します
「gps_lat」 -GPS緯度
「gps_long」 -GPS経度
「gps_hdop」 -GPS HDOP
「gps_alt」 -GPS高度
「gps_fix」 -GPS固定(有効な結果を得るには3-である必要があります)
「gps_cog」 -GPSコグ
「gps_speed_km」 -GPS速度([km / h])
「gps_sat」 -GPS衛星が見つかりました
"continent"、 "country"、 "region"、 "subregion"、 "subsubregion"、 "city"、 "district"、 "street"、 "street_nr"、 "item_nr"- 顧客の住所と説明のフィールド (!!!!「*」には使用できません 履歴テーブル)
「ログ」-ログデータ
SQLステートメントでは元の名前を使用する必要があるため、フィールド名は、検索機能を向上させるためのSQLクエリを作成するために重要です。
このテーブルは、各デバイスのイベント/コマンドキューであり、次の構造を持っています。
「コマンド」-コントローラに送信される、またはすでに送信されているコマンド
「確認済み」-すでに送信および確認済みの場合は確認フラグ
「日付」-イベントのUNIXタイムスタンプ
「更新済み」-自動更新フラグ(タイムスタンプの日付/時刻)
フロントエンドWebアプリケーションなしでデータにアクセスできます。 @Cityシステムには、中間レベルの機能を備えたスクリプトが含まれています。 結果はJSON形式で返されます。
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」:"" }]
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" }]
この関数は、「_ 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" }]