Skip to main content

SenseCAP M2 Multi-Platform Gateway LNS 設定

ゲートウェイ設定

Web UIを介してゲートウェイを設定します。Luciにログインする方法については、クイックスタートをご確認ください。

チャンネルプラン設定

LoRa > Channel Planに移動します

pir

地域と周波数プランを選択します。

pir

設定後、Save&Applyをクリックします

ローカルネットワークサーバー設定

LoRa > LoRa Networkに移動します

pir

モードをLocal Network Serverに設定し、MQTTの情報(Broker Host/Port/User/Password)を追加します。その他のパラメータはデフォルト値のままで構いません。

pir

Save&Applyをクリックして設定を適用します。

注意

プロセスの開始には約1分かかります。その後、GUI設定にアクセスできるようになります。

ChirpStack GUI設定

http://localhost:8080を介してChirpStack GUIにログインします。

pir

デフォルトのアカウントとパスワード:admin

pir

ダッシュボードページが表示されます。

pir

地域の確認

Network Server > Regionsに移動します。

地域IDが表示されているはずです。それをクリックして情報を確認し、前のステップでの設定と同じであることを確認してください。

pir

pir

デバイスプロファイルの追加

Tenant > Device Profilesに移動し、Add Profileをクリックします。

pir

MAC version: LoRaWAN 1.0.3

Regional parameters reversion: A

ADR algorithm: Default ADR algorithm(LoRa only)

Expected uplink interval: カスタマイズ、デフォルト3600秒

pir

Codecに移動し、JavaScript functionsを選択して、SenseCAP Decoder for TTNをコピーして送信します。

pir

ゲートウェイの追加

Gatewayに移動し、Add Gatewayをクリックします。

pir

名前とゲートウェイIDを定義し( をクリックしてIDをランダムに生成できます)、送信します。

pir

デバイスの追加

Tenant > Applicationに移動し、Add Applicationをクリックします。

アプリケーションに名前を付けて送信します。

pir

アプリケーションに移動し、Add deviceをクリックします。

pir

デバイスEUIを貼り付け、前に追加したデバイスプロファイルを選択して送信します。

pir

アプリケーションキーを貼り付けて送信をクリックします。

pir

デバイスステータスの確認

デバイスのEventsを確認すると、デバイスがネットワークに参加したときのjoinパケットが取得できます。

pir

パケットの詳細も確認できます。

pir

インテグレーション

この章はクラウドサービス開発のためのものです。以下のガイドラインは参考用です。

MQTT

トピック

MQTTインテグレーションは、イベントタイプで文書化されているすべてのイベントを公開します。

デフォルトのイベントトピックは:

application/APPLICATION_ID/device/DEV_EUI/event/EVENT

Event Types で詳細を確認してください。

アプリケーションIDはアプリケーションタブで確認できます:

pir

  • Event types
upアップリンクイベント
statusマージンとバッテリーステータス
joinデバイス参加イベント
ack確認済みダウンリンク(n)ack
txackダウンリンク送信ack
logログ(またはエラー)イベント
location位置イベント
integration統合イベント
Note

+ はすべてのメッセージを受信することを意味します

  • 特定のゲートウェイ下のすべてのデバイスからアップリンクメッセージを受信するには:
gateway/<GATEWAY_EUI>/device/+/event/up
  • アプリケーション配下のすべてのデバイスからのすべてのメッセージを受信するには:
application/+/device/+/event/+
  • すべてのゲートウェイからすべてのデバイスメッセージを受信するには:
gateway/+/device/+/event/+

gatewayid を確認してゲートウェイを区別することができます。

pir

ペイロード

object.valid が true の場合、データ解析が成功したことを意味し、object.messages を走査して必要なデータタイプを抽出できます。

pir

  1. SenseCAP LoRaWAN S210X センサーのアップイベントペイロード例の説明:

pir

  • upload_battery: バッテリー
  • upload_interval: アップロード間隔、単位:秒
  • upload_version: ハードウェア/ファームウェアバージョン
  • report_telemetry: 測定値

'report_telemetry' メッセージ内の measurementId については、詳細は SenseCAP Measurement ID を確認してください。

pir

  1. SenseCAP データロガーのアップイベントペイロード例の説明:

pir

'report_telemetry' メッセージ内の measurementId については、詳細は SenseCAP Measurement ID を確認してください。

HTTP

HTTP タブで + をクリックして新しい HTTP 統合を追加します。

LNS は設定された URL に POST としてメッセージを送信します。

pir

URL 情報を送信してください。

Note

http のみサポート、https はサポートしていません。

pir

HTTP 統合は設定されたイベントエンドポイントまたはエンドポイント(複数の URL を設定可能、カンマ区切り)に POST リクエストを行います。イベント URL クエリパラメータはイベントのタイプを示します。

HTTP 統合は Event Type で文書化されているすべてのイベントを公開します。

main.py
from http.server import HTTPServer, BaseHTTPRequestHandler 

from urllib.parse import urlparse, parse_qs

from chirpstack_api import integration

from google.protobuf.json_format import Parse

class Handler(BaseHTTPRequestHandler):

\# True - JSON marshaler

\# False - Protobuf marshaler (binary)

json = False

def do_POST(self):

self.send_response(200)

self.end_headers()

query_args = parse_qs(urlparse(self.path).query)

content_len = int(self.headers.get('Content-Length', 0))

body = self.rfile.read(content_len)

if query_args["event"][0] == "up":

self.up(body)

elif query_args["event"][0] == "join":

self.join(body)

else:

print("handler for event %s is not implemented" % query_args["event"][0])

def up(self, body):

up = self.unmarshal(body, integration.UplinkEvent())

print("Uplink received from: %s with payload: %s" % (up.device_info.dev_eui, up.data.hex()))

def join(self, body):

join = self.unmarshal(body, integration.JoinEvent())

print("Device: %s joined with DevAddr: %s" % (join.device_info.dev_eui, join.dev_addr))

def unmarshal(self, body, pl):

if self.json:

return Parse(body, pl)

pl.ParseFromString(body)

return pl

httpd = HTTPServer(('', 8090), Handler)

httpd.serve_forever()

ダウンリンク

ダウンリンクメッセージ:

info

ダウンリンクを保持済みとしてマークすることを推奨します。これにより、コマンドが繰り返し実行されることがなくなります。

デフォルトのTopicは:application/APPLICATION_ID/device/DEV_EUI/command/down

command:詳細については、デバイスユーザーマニュアルのダウンリンクコマンドを確認してください。

Topicapplication/APPLICATION_ID/device/DEV_EUI/command/down
devEUIデバイスEUI
confirmedtrue/false(ペイロードを確認済みデータダウンとして送信する必要があるかどうか)
fPort使用するFPort(0より大きい値である必要があります)
database64エンコードされたデータ(平文、ChirpStackによって暗号化されます)

:

  1. SenseCAP S210x LoRaWANセンサーの再起動:

Topic:

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down

Json:

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AMgAAAAAACsm"

}
  1. SenseCAP S210x LoRaWANセンサーのアップロード間隔を1分に設定する:

トピック

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down

Json

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AIkAESIBAJBQ"

}
Loading Comments...