reComputer R1xでのOpenRemoteデプロイ エッジでのIoTデバイス管理
はじめに
OpenRemoteは、ネットワーク接続されたデバイスの接続と管理を簡素化するために設計されたオープンソースのIoTプラットフォームです。システムの中核にあるのはManagerで、これはIoTコンテキストブローカーとして機能するヘッドレスJavaアプリケーションで、アセットの状態をリアルタイムでキャプチャし管理します。動的アセットモデリングにより、建物、部屋、センサーなど、環境のさまざまなコンポーネントを表現でき、特定のニーズに合わせてカスタマイズできます。Groovy、JavaScript、またはJSONで記述されたルールは、アセットの状態変化やイベントシーケンスに基づいてアクションをトリガーします。これらのルールは、例えば部屋の湿度が上昇したときなど、特定の閾値に達したときにユーザーに通知することができます。プラットフォームは、サードパーティAPIやサービスプロトコルとインターフェースするAgentを介してネットワーク接続されたデバイスをサポートし、マネージャーと同じ場所に配置することも、エッジゲートウェイにインストールすることもできます。Raspberry Pi搭載のRecomputer R1000およびR1100デバイスにOpenRemoteをデプロイすることで、エッジでIoTエコシステムを管理し、デバイスの効率的でローカライズされた制御を提供できます。
DockerとDocker-Composeのインストール
UbuntuシステムにDockerとDocker-Composeをインストールするには、以下の手順に従ってください:
1. システムパッケージの更新
まず、パッケージリストを更新し、インストール済みパッケージをアップグレードして、システムが最新の状態であることを確認します。
sudo apt update
sudo apt upgrade
2. Dockerのインストール
次に、公式インストールスクリプトを使用してDockerをダウンロードしてインストールします。これにより、Dockerとそのすべての依存関係が自動的にインストールされます。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
3. ユーザーをDockerグループに追加
デフォルトでは、Dockerはroot権限を必要とします。sudo
なしでDockerコマンドを実行するには、ユーザーをDockerグループに追加します:
sudo usermod -aG docker ${USER}
このコマンドを実行した後、ログアウトして再度ログインするか、システムを再起動して変更を有効にしてください。
4. システムの再起動
変更を有効にし、ユーザーがDockerグループに追加されるように、システムを再起動します。
sudo reboot
5. Dockerインストールのテスト
再起動後、hello-world
イメージを実行してDockerインストールを確認します。これにより、Dockerが正しく動作していることが確認されます。
docker run hello-world
6. Docker-Composeのインストール
最後に、マルチコンテナDockerアプリケーションを定義・実行するためのツールであるDocker-Composeをインストールします。インストールするには、以下を実行してください:
sudo apt install docker-compose
Recomputer R1000 / R1100でのOpenRemoteのインストール
1. Docker Composeファイルのダウンロード
OpenRemoteリポジトリから公式のdocker-compose.yml
ファイルを直接取得します:
wget https://raw.githubusercontent.com/openremote/openremote/master/docker-compose.yml
2. ディレクトリへの移動
YAMLファイルが配置されているディレクトリに移動します:
cd /path/to/yaml
3. Dockerイメージのプル
必要なDockerイメージをダウンロードします:
docker-compose pull
4. OpenRemoteの起動
Docker Composeを使用してOpenRemoteを実行します:
docker-compose -p openremote up
これにより、OpenRemote Managerとサポートサービスが起動します。
5. OpenRemoteへのアクセス
起動後、デフォルトの認証情報でOpenRemote Managerにログインできます:
- Username:
admin
- Password:
secret
これで、Recomputer R1000 / R1100上でエッジIoTプラットフォームとしてOpenRemoteが動作し、接続されたデバイスを管理・制御できるようになりました。
HTTPプロトコルでの作業
Recomputer R1000 / R1100上のOpenRemoteにOpenWeatherMap APIを統合するには、以下の手順に従ってください。このガイドでは、天気データ用のAgentの作成、アセットへのリンク、設定の構成方法について説明します。
OpenWeatherMap APIキーの取得
OpenWeatherMap APIを使用するには、無料のAPIキーが必要です。OpenWeatherMapで無料アカウントを登録し、APIキーを取得してください。
Agentの作成
HTTP API Agentの作成
- Assetsページに移動します。
- 左側のアセットリストの上部にある**+アイコンをクリックして、新しいAgentまたはAsset**を追加します。
- 表示されるダイアログで、リストからHTTP Agentを選択します。
- Name:
HTTP API Agent
- Addをクリックします。
エージェントが事前設定された属性で作成されました。OpenWeatherMap APIに接続するように設定する必要があります。
HTTP API Agentの設定
HTTP API Agentが作成されたので、以下の詳細で設定します:
-
Base URI:
https://api.openweathermap.org/data/2.5/
(右側の送信ボタンをクリックするかEnterキーを押して値を送信することを忘れないでください。) -
Request Query Parameters:
OpenWeatherMapアカウントからAPIキーを入力し、以下のようにパラメータを設定します:
{
"appid": ["YOUR_API_KEY"],
"q": ["Rotterdam,nl"],
"units": ["metric"]
}
Saveをクリックして設定を確認します。
Weather Assetの作成
新しいWeather Assetの追加
- **+**アイコンをクリックしてアセットを追加します。
- リストからWeather Assetを選択します。
- Name:
Weather Rotterdam
- Addをクリックします。
weather assetがHTTP API Agentの子としてリストに表示されます。必要に応じて親を変更できます。
Agent Linkの追加
アセット設定の変更 アセットページ上部のトグルをクリックしてModify Modeに移行します。このモードでは、アセットの属性を変更し、設定を構成できます。
Humidity属性の設定
-
humidity属性を展開します。
-
Add configuration itemをクリックし、Agent linkを選択します。
-
HTTP API Agentを選択します。
-
以下のパラメータを追加します:
- Polling millis:
60000
(1分ごとにポーリング) - Path:
weather
- Value filters:
JsonPathFilter-2
- Path (JSON):
$.main.humidity
- Polling millis:
Temperature属性の設定:
-
temperature属性を展開します。
-
Add configuration itemをクリックし、Agent linkを選択します。
-
HTTP API Agentを選択します。
-
以下のパラメータを追加します:
- Polling millis:
60000
(1分ごとにポーリング) - Path:
weather
- Value filters:
JsonPathFilter-2
- Path (JSON):
$.main.temp
- Polling millis:
右上のSaveをクリックして、これらの変更を適用します。
ライブ天気データの表示
属性を追加したら、View Modeに切り替えてライブ天気データを確認します。これで、weather assetにリンクされたロッテルダムの現在の気温と湿度が表示されます。
ChirpStack LoRaWANゲートウェイ統合でのMQTT Agent
このチュートリアルでは、MQTT AgentをChirpStackと統合し、Dragino LHT65やSenseCap S210xセンサーなどのデバイスで使用するためにOpenRemoteマネージャーで設定するプロセスをガイドします。続行する前に、ReComputer R1XデバイスにChirpStackをインストールし、デバイス(例:SenseCap S210X)をペアリングしていることを確認してください。ChirpStackのインストール詳細については、公式のChirpStack LoRa Gateway on ReComputer R1Xガイドを参照してください。
前提条件
- OpenRemote Manager UIが動作していること。
- ReComputer R1XデバイスにChirpStack LoRaWANゲートウェイがインストールされていること。
- LoRaWANデバイス SenseCap S210X。
OpenRemote MQTT Agentの作成
-
OpenRemote Manager UIにログイン:
ブラウザを開き、OpenRemote Manager UIにアクセスします -
Assetsページに移動:
ページの左側で、Assetsタブをクリックします。 -
新しいMQTT Agentの作成:
- 左側のアセットツリーで**+**ボタンをクリックします。
- Add assetダイアログで、アセットタイプのリストからMQTT Agentを選択します。
- アセットにChirpStack MQTT Agentと名前を付けます。
- ADDをクリックしてアセットを作成します。
- MQTT Agentの設定:
- Modifyをクリックしてアセット設定を編集します。
- 以下の属性を設定します:
- Host: ChirpStackサーバーのIPアドレス(例:
10.0.0.208
)。 - Port:
1883
(デフォルトのMQTTポート)。
- Host: ChirpStackサーバーのIPアドレス(例:
- SAVEをクリックして変更を保存します。
OpenRemote LoRaWANデバイスアセットの作成
- 新しいLoRaWANデバイスの追加:
- Assetsページで、左側のアセットツリーの**+**をクリックします。
- Add assetダイアログで、Thing Assetを選択します。
- アセットにS2101(または特定のデバイス名)と名前を付けます。
- ADDをクリックしてアセットを作成します。
-
Device Assetを変更:
- Modifyをクリックしてアセット設定を編集します。
-
温度用のカスタム属性を追加:
- ADD ATTRIBUTEをクリックして新しい属性を追加します。
- Add attributeダイアログで、以下を設定します:
- Type: Custom attribute
- Name: Temperature
- Value type: Number
- ADDをクリックして属性を保存します。
- MQTT Agent用の設定項目を追加:
- Temperature属性を展開し、ADD CONFIGURATION ITEMSをクリックします。
- Add configuration itemsダイアログで、以下のように設定します:
- Select: Agent link
- ADDをクリックしてMQTT Agentへのリンクを作成します。
- Agent link設定項目を展開し、Agent IDを設定します:
- Agent ID: ChirpStack MQTT Agent
- ADDをクリックしてAgent linkを保存します。
センサーデータ用のMQTTサブスクリプションを設定
-
MQTTトピック用のパラメータを追加:
- ADD PARAMETERをクリックして新しい設定項目を追加します。
- Add parameterダイアログで、Subscription Topicを選択し、ADDをクリックします。
-
MQTTサブスクリプショントピックを設定:
-
Subscription Topicフィールドを以下のChirpStack MQTTトピック形式で編集します:
application/+/device/+/event/up
-
このトピックはLoRaWANデバイスからの受信センサーデータをサブスクライブします。
-
-
Value Filtersを追加:
- ADDをクリックして新しいValue Filtersパラメータを追加します。
- Value Filtersセクションを展開し、ADD ITEMをクリックします。
- Add itemダイアログで、JSON Pathを選択し、ADDをクリックします。
-
センサーデータ用のJSON Pathを設定:
-
新しく作成されたJSON Path項目を展開し、Pathを以下に設定します:
$.object.messages[?(@.measurementId==4097)].measurementValue
-
これはSenseCap S2101データデコーダーの例です。特定のデバイスに応じてパスを調整してください。
-
Return Firstオプションを有効にします。
-
-
設定を保存:
- すべての設定が完了したら、SAVEをクリックしてセットアップを完了します。
統合をテスト
-
MQTT通信を確認:
MQTT AgentがChirpStackサーバーに接続されており、トピックapplication/+/device/+/event/up
がデータを受信していることを確認します。 -
温度を監視:
SenseCap S2101(または設定したデバイス)が温度測定値を送信し、OpenRemoteマネージャーがTemperature属性の下にこれらの値を表示するはずです。
デモ
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。