This is a useful tool to test LoRa server.
To emulate end devices (a.k.a. Motes in LoRaWAN™ protocol)
Support LoRaWAN™ 1.0.2 & 1.1 protocol
Using Gateways from Semtech™
Use pip
to install lora-mote-emulator
:
pip install lora-mote-emulator
Use pip
to install pipenv
:
pip install pipenv
Clone this repo into a directory:
git clone https://github.com/houluy/lora-mote-emulator.git
Use pipenv
to create a virtual Python environment and install all the dependencies:
pipenv install
Build the project:
python -m build
Here, if there is not Python 3.6 in your system, a warning will occur, and no package will be installed. It is perfect to install Python 3.6 from source. Otherwise, remove the Pipfile.lock
and redo the above command.
pipenv shell
mote -h
to see the help messageusage: mote [-h] [-v version] [-c CONFIG] [--model MODEL] {join,app,pull,mac,rejoin,info,abp,create} ... Tool to emulate LoRa mote (a.k.a end-device) and Gateway, supported command list: ['join', 'app', 'pull', 'mac', 'rejoin', 'info', 'abp', 'create'] optional arguments: -h, --help show this help message and exit -v version, --version version Choose LoRaWAN version, 1.0.2 or 1.1(default) -c CONFIG, --config CONFIG Specify the directory of config files, default './config' --model MODEL Specify the directory to save the model file, default './models' Supported commands: {join,app,pull,mac,rejoin,info,abp,create} join Send join request. app Send application data. pull Send PULL_DATA. mac Send MACCommand. rejoin Send rejoin request. info Show information of current mote. abp Initialize mote in ABP mode. create Handle configurations.
mote create [-c ./config]
. Mote will generate required config template JSON files in the ./config directory (default). In the directory, several JSON config files are included.config.json
: Basic configurations.gateway.json
: Gateway EUI.device.json
: Device parameters for OTAA mode.abp.json
: Device parameters for ABP mode.Modify device infomation in device.json
copied. An example:
{ "Device": { "JoinEUI": "0000000000000000", "DevEUI": "0000000000000000" }, "RootKeys": { "AppKey": "00000000000000000000000000000000", "NwkKey": "00000000000000000000000000000000" } }
NOTE: If you want to emulate LoRaWAN 1.0 device, first set JoinEUI
equal to AppEUI
and set NwkKey
equal to AppKey
.
Modify device activation information in abp.json
. An example:
{ "deveui": "0000000000000000", "joineui": "0000000000000000", "devaddr": "00000000", "appkey": "00000000000000000000000000000000", "nwkkey": "00000000000000000000000000000000", "nwksenckey": "00000000000000000000000000000000", "snwksintkey": "00000000000000000000000000000000", "fnwksintkey": "00000000000000000000000000000000", "appskey": "00000000000000000000000000000000", "fcntup": 0, "version": "1.1" }
Currently, five kinds of message is supported: pull data, join request, rejoin request, confirmed (or unconfirmed) data up (with or without FOpts) and MAC Commands in FRMPayload field:
NOTE: Always remember to mote pull
to keep the gateway alive in server.
mote info mote pull mote abp mote join [-n] mote rejoin 'rejointyp' (0, 1, 2) mote app 'message' (uplink message, will be encoded by UTF-8) [-auf] mote mac 'command' (MAC Commands in FRMPayload field)
Here is the example step of interaction with ChirpStack:
mote pull mote join -n mote app helloworld -f 0302 mote main.py mac 0302
This repo is hosted on https://github.com/houluy/lora-motes-emulator and under MIT license, any contribution or suggestion is welcome. Just open an issue or send a pull request.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。