enebular-agentを使って作ったアイディアを書くつもりでしたが、完成が間に合わなかったため、代わりにenebular-agentの紹介&使い方を書きます。
そもそもenebular-agentとは
Linux上で動作するIoT向けのエージェントソフトです。動作保証がされている環境はオフィシャルドキュメントに書いてありますが、enebular-agentはオープンソースとなっているので、他のLinux環境でも多少のカスタマイズで動作させることも可能だと思います。
何ができる?
enebularで管理されているアセット(フロー、ファイル、AIモデル)をデプロイすることができます。
そもそもIoT向けのエージェントソフトなので、最初のインストール以降はデバイスに触ることなくクラウドから遠隔で管理、アプリケーションの更新ができるようになっています。
遠隔で管理?
enebular上では、enebular-agentのステータスやログを見ることができます。さらにリモートメンテナンス機能を使うとインターネットを介してSSH接続できるようになってます。(もちろんセキュアに)
インストール方法
enebular-agentはコマンドで自動的にインストールできるようになってます。
インストール前に必要なもの
enebular-agentとenebularと繋ぐため、以下のいずれかのサービスを必要とします。インストール時に接続情報が必要になります。
※AWS IoTを使用する場合は、AWSの設定を含め、enebular-agentのインストール方法を詳細に説明した記事「enebular-agentをRaspberry Piにインストールする」があるのでこちらも参照下さい)
インストールコマンド
インストールは自動ですが、インストールコマンドのオプションがちょっと複雑です。
次の例はAWS IoTを使う場合に、普通にインストールするためのコマンド例です。
wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- --aws-iot-thing-name={iot thing name} --aws-access-key-id={access key id} --aws-secret-access-key={secret access key} --aws-iot-region={iot region}
中カッコ内はAWS IoTの接続情報に書き換えてください。iot thing name
は他と被らなければある程度自由に決められます。インストーラーの中でこの名前を使って、AWS IoTのThingを自動的に作って、接続します。
フローのデバッグ方法
フローはenebular上のWebフローエディタでもデバッグできますが、デバイス上でしか動作しないものはWebフローエディタではデバッグできません。基本的にデバッグする方法は2種類です。
デバイスログでデバッグ
debugノードのオプションでシステムコンソール
にチェックを入れるとenebular上のデバイスログで確認ができます。これで処理の結果を確認することができます。
ただし、デバイスのログは5分に1回しかアップロードされないため、リアルタイムに確認することができません。リアルタイムに確認するにはリモートモードが便利です。
enebular editorでデバッグ
enebular editorを使うとリモートでenebular-agentのフローエディタに接続することができるリモートモードが使用できます。ただし、enebular-agentとenebular editorが動作するPCが同一のネットワーク内でないと使用できません。
リモートモードは、事前にenebular-agentが動作しているデバイス上もしくはSSH接続を行い、以下の手順でenebular-agentの動作モードを切り替える必要があります。
1.enebular-agentを一旦停止する
> sudo systemctl stop enebular-agent-{user名}.service
※user名はenebular-agentをインストールするときにオプションで指定したユーザ名になります。指定していない場合はenebular
です。
2.Nodejsのパスを環境変数に追加
> export PATH=$PATH:/home/{user名}/nodejs-v12.18.1/bin
※上記パスのnodejsのバージョンはenebular-agentのバージョンによって異なりますので、インストールしたバージョンに合わせて変更して下さい。
3.enebular-agentを開発者モードで起動
> /home/{user名}/enebular-runtime-agent/ports/awsiot/bin/enebular-awsiot-agent --dev-mode
※AWS IoTの場合
enebular-agentを開発者モードで起動したらenebular editorからリモートモード接続します。
※IPアドレス選択のダイアログが表示される場合は、enebular-agentと同じネットワークを選んでください。
接続に成功すればフローエディタが表示されます。デバッグメッセージを開けばリアルタイムでdebugノードの結果が表示されます。