1. はじめに
IoTでは、センサー情報の取得や機器を遠隔で監視・制御することが可能です。
しかしながら、これら遠隔監視・制御は、センサーや機器に接続されているIoTデバイスが正常に稼働していることが大前提です。
そのため、IoTサービスにはIoTデバイスの稼働状況を監視することは必要な要素です。
そこで、今回はNEQTOで提供しているIoTデバイスの稼働状況を監視する機能の「NEQTO Custodia」をご紹介します!
2. NEQTO Custodia(カストーディア)とは?
NEQTO Custodiaは、
IoTデバイスから送信されるデータに対し、NEQTO Console側でデータ受信の状態を設定された時間間隔で監視する機能です。
IoTデバイスの故障や通信障害により、本来届くはずのデータが受信できなかったことを検知することによって、IoTデバイスが正常に稼働していないことを認識するため、サービスへの影響を防ぐための有効的な手段となります。
サービスへの影響の一つとして、通信障害によるデータ通信不可があげられます。
早期に異常を検知し対策をしないと、IoTデバイスで取得したデータが欠落し、サービスの品質が低下します。
NEQTOではNEQTO Custodiaで異常を早期に検知する方法とは別に、通信障害が発生した場合でもIoTデバイスに内蔵されたフラッシュメモリにデータを保存し、通信障害が復帰した場合、クラウドへ送信することができるStorageオブジェクトを用意しています。Storageオブジェクトについては、また別のブログで紹介します。
3. NEQTO Custodiaの使用例
例えば、10分に1回センサー情報をIoTデバイスがNEQTO Consoleに送信するケースで、NEQTO Console側で30分周期でデータを受信したか否かの稼働状況を監視する場合、IoTデバイスが正常動作をしていれば、問題なく30分の周期の中でデータ受信を確認することができます。
もし、IoTデバイスが故障もしくは無線障害が発生した場合、30分周期の稼働監視でデータを受信できないことから異常が検知され、ユーザーに通知をする、といった使い方があります。
今回は、NEQTO Consoleから送信されるコマンドに対するIoTデバイスの返信を監視する使用例で説明をしたいと思います。
構成図を下図に示します。
IoTデバイスとしてSTM32 Discovery Kitを使用します。
ご説明するシナリオの例は、以下の通りです。
-
IoTデバイスの稼働状況を監視する周期 (NEQTO CustodiaのTimer Interval)は、600秒 (10分)に設定します。
-
NEQTO Consoleから5分に1回で「Alive?」というコマンドを一括送信で送信します。※1
※1 NEQTO Consoleには周期的にコマンドを送信する機能はございませんので、本ブログでは手動でテンプレートのカスタムメッセージを使用して一括送信をします。 なお、カスタムメッセージにつきましては、ブログ「IoTデバイスを簡単に遠隔操作! NEQTO Dynamic APIのご紹介」を参照ください。
- 「Alive?」コマンドを受信したIoTデバイスは「Yes」をNEQTO Consoleへ送信します。
- Timer Intervalの10分間の中で、「Yes」を受信できなかったIoTデバイスの号機と検知時間をメールで送信します。
4. NEQTO Custodiaの設定方法
NEQTO Custodiaを使用する場合は、NEQTO Consoleのグループ設定のオプションサービス内にある「Custodia」を有効にします。
また、データ受信を監視する間隔の時間を、Timer Intervalに入力します。
NEQTO Custodiaのご利用にあたり費用が発生しますので、詳しくはNEQTO料金体系をご確認ください。
アクションの設定
メール送信の設定をするため、以下のようにアクションの設定をします。
本文の中に{timestamp__Asia_Tokyo}や{node_name}という表記があります。
これは動的数値という変数であり、{timestamp}については選択したタイムゾーンのタイムスタンプ、{node_name}についてはノード名がNEQTO Consoleにより自動入力されます。
動的数値の詳細はリンクを参照ください。
通知登録
NEQTO Custodiaで検出した稼働状況を、アクションで設定したメール通知を関連づけるため、以下のように通知を設定します。
レベルについて
レベルには「Info」、「Warn」、「Error」、「Fatal」の表記があります。
NEQTO Custodiaはこのうち「Info」、「Warn」のみを使用します。
それぞれの内訳は以下の通りです。
レベル | 状態 | 説明 |
---|---|---|
Info | Healthy | 規定インターバル内に正常にデータが来ている状態 |
Disabled | Custodia無効状態 | |
Pending | 規定インターバルでのデータ受信を待っている状態 | |
Warn | Unhealthy | 規定インターバル内にデータが来ない状態 |
遠隔での稼働監視では、今回設定している赤枠で示したレベル「Warn」の「Unhealthy」の「規定インターバル内にデータが来ない状態」の情報がとても重要ですが、レベル「Info」の状態「Healthy」も重要です。
電波状態が不安定な場合、データ受信できない状態が発生したとしても、復帰する可能性もあります。
「Healthy」、「Unhealthy」が頻繁に発生する場合は、無線上の問題がある可能性もありますので、その場合は設置場所やアンテナ配置の見直しが必要です。
NEQTOでは受信レベルのRSSIをコンソール上で確認できますし、信号品質を取得できるオブジェクトを準備していますので、無線状態を確認して設置・配置の検討にご活用頂けると思います。
NEQTO Consoleから「Alive?」コマンドを一括送信
カスタムメッセージで「alive?」を送信
STM32 Discovery Kit_No.1, No.2から「Yes」を受信
カスタムメッセージで2回目の「Alive?」を送信
STM32 Discovery Kit_No.2の電源をオフしています。
Timer Intervalに設定した10分を超えたところで、STM32 Discovery Kit_No.2に関わるメールを受信したことを確認しました。
ノードダッシュボード上の「ノード状態」で異常を検知していることが確認できます。
ノードダッシュボード上の「最近のイベント」でもレベル「warn」、「Unhealthy」であることが確認できます。
5. 終わりに
今回は、IoTデバイスの稼働監視の機能である「NEQTO Custodia」を、IoTデバイスの稼働監視の重要性とともに説明をしました。
データをクラウドへ送信する機能はIoTとしてベースとなる機能ですが、更に一歩先のIoTでは必ず必要となるデバイスの管理は、IoTサービスを進める上でとても重要です。
今後もNEQTOでサポートしているデバイス管理の機能について、ブログを通して紹介をしていきます。
リンク
今回使用したデバイス
STM32L4+ Discovery kit IoT node [B-L4S5I-IOT01A]: STマイクロエレクトロニクス