13. エミッタ出力先設定#
13.1 はじめに#
本書では SpeeDBee Hive と AWS Iot Core、Azure Iot Hub、MQTT、FTP/FTPS、Machine Advisor、SensorCorpus との連携方法およびファイル出力設定方法について記載します。
13.2 AWS IoT Core 連携設定#
13.2.1 AWS IoT Core設定#
-
AWS マネジメントコンソールにログインし、IoT Core サービスを選択します。
-
メニュー「安全性 - ポリシー」を選択し、「作成」を選択します。
-
名前、アクション、リソース ARN、許可を入力し、「作成」を選択します。
-
メニュー「管理 - モノ」を選択し、「モノを作成」を選択します。
-
「一つのモノを作成する」を選択し「次へ」を選択します。
-
名前を入力し、「次へ」を選択します。
-
「新しい証明書を自動生成(推奨)」を選択し「次へ」を選択します。
-
先程作成したポリシーを選択し、「モノを作成」を選択します。
-
「証明書とキーをダウンロード」にて、下記をすべてダウンロードし、「完了」を選択します。
- デバイス証明書
- プライベートキーファイル
- Amazonルート CA 1
13.2.2 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面で AWS Iot Core の接続情報を設定します。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
各項目は、「AWS IoT Core設定」で作成した内容に基づき、下表の通り入力してください。
項目名 内容 タイプ AWSを選択 出力先名 任意の名前を入力 タイムゾーン AWSに送信するデータに含まれる日付情報のタイムゾーンを選択 リトライ回数 送信失敗した場合のリトライ回数を入力 タイムアウト 送信処理がタイムアウトするまでの時間をミリ秒単位で入力 ホスト AWS IoT Coreのホスト名を入力 ポート AWS IoT Coreのポート番号を入力(445 or 8883) MQTT QoS 使用するMQTTのQoSを選択(0:受信確認なし、1:受信確認あり) ホスト名は AWS Iot サービスの設定画面のエンドポイント名を入力してください。
-
「保存」ボタンを選択し、入力した内容を保存します。
-
続けて、「AWS IoT Core設定」でダウンロードした証明書関連のファイルをアップロードします。
項目名 内容 CA証明書 AmazonルートCA1を選択 SSL証明書 デバイス証明書を選択 秘密鍵書 プライベートキーファイルを選択 -
「保存」ボタンを選択し、選択したファイルをアップロード
設定した AWS Iot Core にデータを送信するには、送信データメニューで送信データを 設定する際に出力先を上記で設定した出力先名を選択してください。送信データ設定方法 については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.2.3 データ受信確認#
SpeeDBee Hive から送信したデータは AWS Iot サービス画面で確認できます。 メニュー「MQTTテストクライアント」を選択し、トピックのフィルターに AWS エミッタ 設定画面で入力した「送信先」を入力し、「サブスクライブ」を選択します。
SpeeDBee Hive から送信されたデータが確認できます。
13.3 Azure Iot Hub 連携設定#
13.3.1 Azure 設定#
13.3.1.1 Iot Hub の作成#
-
Azure Portalにログインし、リソースの作成を選択します。
-
モノのインターネット(IoT)を選択して、さらに IoT Hub を選択します。
項目に表示されていない場合は"おすすめ"の左にある"すべて表示"を選択すると表示されます。
-
作成を選択します。
-
各項目を入力します。
- リソースグループがない場合は新規作成してください。
- IoT Hub 名は使用者が分かりやすいものを入力してください。
-
その他の"ネットワーク"、"サイズとスケール"、"タグ"は使用者の利用条件に合わせて適宜入力してください。
-
作成を選択します。
デプロイが実行され作成完了します。
13.3.1.2 IoT Edge(デバイス)の作成#
-
Azure Cloud Shellを開きます。
-
IoT Hub 用の機能拡張をインストールします。
$ az extension add --name azure-cli-iot-ext
-
IoT Edge(デバイス)を作成します。
IoTHubName に事前に作成した IoT Hub 名、DeviceName に作成したい IoT Edge(デバイス)の名前を入力してください。$ az iot hub device-identity create --hub-name IoTHubName --device-id DeviceName
-
登録したデバイスが使う接続情報を取得します。
IoTHubName に作成した IoT Hub 名、DeviceName に作成した IoT Edge(デバイス)の名前を入力してください 。 以下のような接続情報が返ってきます。$ az iot hub device-identity show-connection-string --hub-name IoTHubName --device-id DeviceName --output table
ConnectionString --------------------------------------------------------------------------------- HostName=IoTHubName.azuredevices.net;DeviceId=DeviceName;SharedAccessKey=xxxxxxx
- HostName から始まる文字列が接続情報となります
- IoTHubName に作成した IoT Hub 名、DeviceName に作成した IoT Edge(デバイス)の名前が入ります。
- 接続情報はエミッタの設定で必要となりますのでメモなどで一時的に記録してください。
- セキュリティ上、接続情報の取り扱いには十分ご注意ください。
13.3.2 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面で Azure Iot Hub の接続情報を設定します。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
項目「タイプ」で Azure を選択します。
-
その他項目は、下表を参考に入力してください。
項目名 内容 タイプ Azureを選択 出力先名 任意の名前を入力 タイムゾーン Azureに送信するデータに含まれる日付情報のタイムゾーンを選択 リトライ回数 送信失敗した場合のリトライ回数を入力 タイムアウト 送信処理がタイムアウトするまでの時間をミリ秒単位で入力 MQTT QoS 使用するMQTTのQoSを選択(0:受信確認なし、1:受信確認あり) 接続文字列 「IoT Edge(デバイス)の作成」で取得した接続文字列を入力 -
保存を選択します。
設定した Azure Iot Hub にデータを送信するには、送信データメニューで送信データを 設定する際に出力先を上記で設定した出力先名を選択してください。送信データ設定方法 については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.3.3 データ受信確認#
- Azure Cloud Shellを開きます。
-
確認用コマンドを実行します。
$ az iot hub monitor-events --hub-name IoTHubName --device-id DeviceName
IoTHubName に作成した IoT Hub 名、DeviceName に作成した IoT Edge(デバイス)の名前を入力してください。
-
SpeeDBee Hive からデータを送信します。
Azure Cloud Shell 上に送信されたデータが表示されます。
13.4 MQTT 連携設定#
13.4.1 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面で MQTT ブローカーの接続情報を設定します。接続時の認証はパスワード認証または匿名アクセスが選択できます。TLS 通信を行う場合は、CA 証明書の設定が必要です。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで MQTT を選択します。
-
その他項目は、下表を参考に入力してください。
項目名 内容 タイプ MQTTを選択 出力先名 任意の名前を入力 タイムゾーン パブリッシュするデータに含まれる日付情報のタイムゾーンを選択 リトライ回数 送信失敗した場合のリトライ回数を入力 タイムアウト 送信処理がタイムアウトするまでの時間をミリ秒単位で入力 ホスト MQTTブローカーのホスト名 or IPアドレスを指定 ポート MQTTブローカーのポート番号を指定 MQTT QoS 使用するMQTTのQoSを選択(0:受信確認なし、1:受信確認あり、2:受信確認、重複抑止) 匿名アクセス ブローカーに匿名アクセスする場合はONにする ユーザー 匿名アクセスではない場合、ユーザー名を入力 パスワード 匿名アクセスではない場合、パスワードを入力 -
「保存」をクリックします。
-
続けて、ブローカーに送信するデータの暗号化設定を行います。
項目名 内容 暗号化 暗号化を有効にする場合はONにする CA証明書 暗号化が有効な場合はそのCA証明書ファイルを選択 -
「保存」ボタンを選択し、選択したファイルをアップロード
設定した MQTT ブローカーにデータを送信するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.4.2 データ受信確認#
MQTT のソフトとして mosuqittoをインストールし、以下コマンドで SpeeDBee Hiveから送信されたデータを確認する事ができます。(Linux での確認)
$ mosquitto_sub -h BrokerAddress -p BrokerProt -t Topic
{
"records": [
{
"datetime": "2020-10-02T01:54:52.428285029Z",
"plc1:reg1": "162"
},
{
"datetime": "2020-10-02T01:54:53.432285029Z",
"plc1:reg1": "163"
}
]
}
・・・
・・・
参考に mosquitto のインストール例を下記に記載します。
$ sudo apt install mosquitto-clients
$ sudo yum install mosquitto
13.5 ファイル出力先設定#
13.5.1 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面でファイル出力先情報を設定します。データの出力先としてファイルを設定することで、データをローカルストレージにファイル出力することができます。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで File(Local) を選択します。
-
その他項目は、下表を参考に入力してください。
設定項目 内容 出力先ディレクトリ データを出力するディレクトリ タイムゾーン データを出力するディレクトリに使われる日時のタイムゾーンを指定 保存時間(時) 出力したデータの保存期間(時間)
過去指定時間分のデータを保存する。指定時間より前に出力されたデータは削除される切替基準 データの出力先ファイルの切替基準 切替時間(秒) 切替基準が時間の場合に表示
データのタイムスタンプで出力先ファイルを切り替える。
ファイルの先頭データのタイムスタンプから指定秒数までのデータは同一ファイルに出力され、次のデータからはファイルが切り替わる。切替件数 切替基準が件の場合に表示
指定件数分のデータがファイルに出力されると、ファイルが切り替わる。形式 データの出力フォーマット(CSV or JSON) 区切り文字 CSV 形式の場合に表示
各データの区切り文字(カンマ or タブ)改行コード CSV 形式の場合に表示
ファイルの改行コード(LF or CRLF)BOM を付ける CSV 形式の場合に表示
ファイルに BOM を付ける場合はチェックヘッダを付ける CSV 形式の場合に表示
ファイルにヘッダ行を付ける場合はチェック -
保存を選択します。
<出力先ディレクトリ>
├─ <エミッタのクライアント ID>
│ ├- YYYYMMDDHHMI(年月日時分のディレクトリ)
│ │ ├─ <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ └─ <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ ・・・
│ │─ YYYYMMDDHHMI
│ └─ YYYYMMDDHHMI
│ ・・・
├─ <エミッタのクライアント ID>
└─ <エミッタのクライアント ID>
ファイル名の YYYYMMDDHHMISS はファイル内の1件目のデータのタイムスタンプとなります。
設定した出力先にデータを保存するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。 送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.6 FTP/FTPS 出力先設定#
13.6.1 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面で FTP/FTPS 出力先情報を設定します。事前にサーバー側は FTP サーバーを設定してください。接続時の認証はパスワード認証または匿名アクセスとなります。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで File(FTP/FTPS)を選択します。
-
その他項目は、下表を参考に入力してください。
設定項目 内容 出力先名 任意の名前を入力 タイムゾーン データを出力するディレクトリに使われる日時のタイムゾーンを指定 ホスト 送信先FTPサーバーのホスト名かIPアドレスを指定 ポート 送信先FTPサーバーのポート番号を指定 暗号化 FTPSを使用する場合はON 匿名アクセス 匿名(anonymous)でアクセスする場合はON ユーザー名 匿名アクセスではない場合、ユーザー名を入力 パスワード 匿名アクセスではない場合、パスワードを入力 出力先ディレクトリ FTPサーバー内の出力先ディレクトリを指定 切替基準、切替時間、切替件数、形式、区切り文字、改行コード、BOMを付ける、ヘッダを付けるについては、「ファイル出力先設定」を参照してください。
-
保存を選択します
出力先ディレクトリ入力時には以下の変数を用いることでファイルの分別ができます。
変数名 | 内容 |
---|---|
%Y | 4 桁の年 |
%m | 2 桁の月(01~12) |
%d | 2 桁の日(01~31) |
%H | 2 桁の時(00~23) |
%M | 2 桁の分(00~59) |
%S | 2 桁の秒(00~59) |
13.6.2 データ受信確認#
データを受信したFTPサーバー側では、以下の構成でファイルが保存されます。
ホームディレクトリ
├- <エミッタのクライアント ID>
│ ├- <出力先ディレクトリ>
│ │ │- <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ └- <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ ・・・
│ └- <出力先ディレクトリ>
│ ・・・
├- <エミッタのクライアント ID>
└- <エミッタのクライアント ID>
・・・
FTP サーバー側に保存先のディレクトリが存在しない場合は新規に作成されます。
ファイル名の YYYYMMDDHHMISS はファイル内の1件目のデータのタイムスタンプとなります。
設定した出力先にデータを保存するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。 送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.7 SFTP 出力先設定#
13.7.1 エミッタ設定#
SpeeDBee Hive のエミッタ設定画面で SFTP 出力先情報を設定します。事前にサーバー側はSFTP サーバーを設定してください。接続時の認証方式にはパスワード認証、もしくは、公開鍵認証を使用可能です。
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで File(SFTP)を選択します。
-
その他項目は、下表を参考に入力してください。
設定項目 内容 出力先名 任意の名前を入力 タイムゾーン データを出力するディレクトリに使われる日時のタイムゾーンを指定 ホスト 送信先SFTPサーバーのホスト名かIPアドレスを指定 ポート 送信先SFTPサーバーのポート番号を指定 公開鍵認証を使う 公開鍵認証方式でアクセスする場合はONにする ユーザー名 ユーザー名を入力 パスワード/パスフレーズ パスワードを入力(公開鍵認証の場合は鍵のパスフレーズを入力) 出力先ディレクトリ SFTPサーバー内の出力先ディレクトリを指定 切替基準、切替時間、切替件数、形式、区切り文字、改行コード、BOMを付ける、ヘッダを付けるについては、「ファイル出力先設定」を参照してください。
-
保存を選択します。
-
公開鍵認証を使用する場合は、秘密鍵ファイルを選択し、保存します。
出力先ディレクトリ入力時には以下の変数を用いることでファイルの分別ができます。
変数名 | 内容 |
---|---|
%Y | 4 桁の年 |
%m | 2 桁の月(01~12) |
%d | 2 桁の日(01~31) |
%H | 2 桁の時(00~23) |
%M | 2 桁の分(00~59) |
%S | 2 桁の秒(00~59) |
13.7.2 データ受信確認#
データが受信できた場合は、以下の構成でファイルが保存されます。
ホームディレクトリ
├- <エミッタのクライアント ID>
│ ├- <出力先ディレクトリ>
│ │ │- <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ └- <エミッタのクライアント ID>_YYYYMMDDHHMISS.csv/json
│ │ :
│ └- <出力先ディレクトリ>
│ :
├- <エミッタのクライアント ID>
└- <エミッタのクライアント ID>
:
FTP サーバー側に保存先のディレクトリが存在しない場合は新規に作成されます。
ファイル名の YYYYMMDDHHMISS はファイル内の1件目のデータのタイムスタンプとなります。
設定した出力先にデータを保存するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。 送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.8 Machine Advisor 連携設定#
13.8.1 Machine Advisor 設定#
-
Machine Advisorにログインし、マシン一覧のマシンの登録を選択します。
-
マシン名、タイプ、チーム、ロケーションを入力し、「終了」を選択します。
-
モニターを選択し、モード、ライセンス、ゲートウェイ、フォーマット、トランスポートを入力します。
すべて入力すると、生成された設定が表示されます。
生成された設定の Server はエミッタの設定で必要となりますのでメモなどで一時的に記録してください。
セキュリティ上、接続情報の取り扱いには十分ご注意ください。 -
「新しいトークン」を選択し、期間を入力して「作成」を選択します。
発行されたトークンはエミッタの設定で必要となりますのでメモなどで一時的に記録してください。
その際、トークンのセミコロン( ; )をコロン( : )に修正して記録してください。
セキュリティ上、接続情報の取り扱いには十分ご注意ください。
13.8.2 エミッタ設定#
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで Machine Advisor を選択します。
-
その他項目は、下表を参考に入力してください。
設定項目 内容 出力先名 任意の名前を入力 リトライ回数 送信失敗した場合のリトライ回数を入力 タイムアウト 送信処理がタイムアウトするまでの時間をミリ秒単位で入力 サーバー Machine Advisor 設定で取得した Server を入力 トークン Machine Advisor 設定で取得したトークンを入力 -
保存を選択します。
設定した Machine Advisor にデータを送信するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。 送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
13.8.3 データ受信確認#
モニターより履歴を選択してください。
確認したい変数、期間を入力し「実行」を選択します。 すべての値を確認したい場合はすべての値を表示にチェックを入れます。 SpeeDBee Hive から送信されたデータが確認できます。
制限事項
- Machine Advisorの受信間隔は1秒に1メッセージまでです。(1秒間に最大60メッセージ)
そのため、データ送信の周期などを適切に設定する必要があります。 - メッセージのタイムスタンプが過去15日、未来15分までのデータが有効となります。
- エミッタで送信可能なデータ数は850件です。 ただし、Machine Advisor側では、データ数を351以上送信すると「履歴」、「グラフ」、「値」、において、151項目目以降のデータが閲覧できません。
- Machine Advisor向けに送信するデータに特殊記号は使用できません。データ自体は送信できますが、Machine Advisorのアプリケーションなどが一部正常に動作しません。特殊文字を含んだコレクタ名やそのデータを送信する場合は「送信スキーマ名」へ特殊記号を含まない名称を設定してください。また、日本語も推奨されていないため、半角アルファベットや半角数字のみを使用してください。
上記の制限は、2022年1月時点のMachine Advisorの制限に依存しています。
13.9 SensorCorpus 連携設定#
13.9.1 SensorCorpus 設定#
-
SensorCorpusにログインし、「ゲートウェイ設定」を選択します。
-
「新規作成」を選択し、各項目を入力して「作成」を選択します。
補足
- エミッタがデータを送信する間隔より、データ受信間隔が小さくなるように設定する必要があります。
設定例 | 内容 |
---|---|
1 | エミッタ側の送信タイミング「周期」、間隔「15秒」 → データ受信間隔は「15秒」以下に設定する |
2 | エミッタ側の送信タイミング「リアルタイム」、紐づけたコレクタの、データを収集する周期が「1秒」 → データ受信間隔は「1秒」以下に設定する |
-
作成したゲートウェイの「詳細」を選択し、詳細画面を開きます。セッションコードがエミッタの設定で必要になるので、メモなどで記録してください。
-
メインメニューに戻り、「センサー設定」を選択します。
-
「新規作成」を選択し、各項目を入力して「作成」を選択します。センサーIDはエミッタの設定で必要になるので、メモなどで記録してください。ゲートウェイは、先ほど作成したものを選択してください。
13.9.2 エミッタ設定#
-
出力先メニューの右側の「+」を選択し、出力先設定画面を表示します。
-
タイプで SensorCorpus を選択します。
-
その他項目は、下表を参考に入力してください。
設定項目 内容 出力先名 任意の名前を入力 リトライ回数 送信失敗した場合のリトライ回数を入力 タイムアウト 送信処理がタイムアウトするまでの時間をミリ秒単位で入力 ホスト SensorCorpusクラウドの送信先URLを入力 セッションコード SensorCorpus 設定で記録した セッションコード を入力 -
保存を選択します。
設定した SensorCorpus にデータを送信するには、送信データメニューで送信データを設定する際に出力先を上記で設定した出力先名を選択してください。 送信データ設定方法については 「ユーザーガイドのエミッタの登録」 を参照してください。
注意事項
- 文字列型およびサイズが3より大きい配列型のデータは送信できません。
- 浮動小数のデータを送信する場合、少数の桁数を11桁以上で指定した際は、10桁へ省略されます。
- 送信データのデータ名(または送信スキーマ名)を、SensorCorpus設定のセンサーIDと合わせる必要があります。
-
リアルタイム分析を利用する場合、センサーIDを「データ名(または送信スキーマ名)-基本統計名称」という形で設定する必要があります。
(基本統計名称)件数→count, 総和→sum, 2乗和→sumsq, 偏差平方和→sumsqd, 最小→min, 最大→max, 範囲→range, 算術平均値→mean, 分散→var, 標準偏差→stdev, 不偏分散→uvar, 標本不偏標準偏差→ustdev, 標準誤差→stder, 変動係数→cv
設定例 内容 1 データ名「A:B」
→ センサーID「A:B」
※センサーIDに英数字_-以外の文字を使用すると、データが正しく受信されない場合があります。2 データ名「A:B」、送信スキーマ名「C」
→ センサーID「C」3 データ名「A:B」、送信スキーマ名「C」、基本統計で最小を選択した場合
→ センサーID「C-min」
13.9.3 データ受信確認#
SensorCorpusのメインメニューにて、「データ確認」を選択してください。
操作列の"+"を選択してください。すると、画面上部のリストにセンサーが追加されます。 集計方法、取得期間を選択し、「更新」を選択してください。 SpeeDBee Hive から送信されたデータが確認できます。 配列型のデータを送信した場合、「取得データ」のvalue1~3が配列の各要素に対応しています。
また、「データ取得」にて、受信したデータをCSV形式でダウンロードすることができます。
操作列の"+"を選択してください。すると、画面上部のリストにセンサーが追加されます。 取得期間、並び順を選択し、「更新」を選択してください。 SpeeDBee Hive から送信されたデータを、CSV形式でダウンロードできます。